插件窝 干货文章 Nginx常用操作有哪些

Nginx常用操作有哪些

Nginx sudo 配置 文件 194    来源:    2025-04-25

Nginx 作为一款高性能的 Web 服务器和反向代理工具,以下是其常用操作和命令的整理,涵盖安装、配置、管理等场景:


一、安装与卸载

Ubuntu/Debian

# 安装
sudo apt update
sudo apt install nginx

# 卸载(保留配置文件)
sudo apt remove nginx
# 完全卸载(删除配置文件)
sudo apt purge nginx

CentOS/RHEL

# 添加EPEL仓库后安装
sudo yum install epel-release
sudo yum install nginx

# 卸载
sudo yum remove nginx

二、服务管理

# 启动
sudo systemctl start nginx

# 停止
sudo systemctl stop nginx

# 重启(平滑重启,不中断连接)
sudo systemctl reload nginx

# 强制重启(中断连接)
sudo systemctl restart nginx

# 查看状态
sudo systemctl status nginx

# 设置开机自启
sudo systemctl enable nginx

三、配置文件操作

关键文件路径

  • 主配置文件:/etc/nginx/nginx.conf
  • 站点配置目录:/etc/nginx/conf.d//etc/nginx/sites-available/
  • 默认网站根目录:/var/www/html/
  • 日志文件:/var/log/nginx/access.logerror.log

常用命令

# 测试配置文件语法
sudo nginx -t

# 显示Nginx版本和编译参数
nginx -V

# 重新加载配置(不重启服务)
sudo nginx -s reload

四、虚拟主机(Server Block)配置

  1. 创建配置文件
    bash sudo nano /etc/nginx/conf.d/example.com.conf
  2. 示例配置

    server {
       listen 80;
       server_name example.com www.example.com;
       root /var/www/example.com;
       index index.html;
    
       location / {
           try_files $uri $uri/ =404;
       }
    }
    
  3. 启用配置
    bash sudo nginx -t && sudo systemctl reload nginx

五、日志管理

# 实时查看访问日志
tail -f /var/log/nginx/access.log

# 按日期切割日志(需配置cron任务)
sudo mv /var/log/nginx/access.log /var/log/nginx/access-$(date +%Y%m%d).log
sudo nginx -s reopen  # 重新打开日志文件

六、性能优化与调试

查看连接状态

# 查看活跃连接数
netstat -anp | grep nginx | grep ESTABLISHED | wc -l

限制并发连接

http {
    limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
    server {
        limit_conn conn_limit 100;  # 每个IP限制100个连接
    }
}

七、HTTPS 配置(Let's Encrypt)

  1. 安装 Certbot
    bash sudo apt install certbot python3-certbot-nginx
  2. 获取证书
    bash sudo certbot --nginx -d example.com -d www.example.com
  3. 自动续期测试
    bash sudo certbot renew --dry-run

八、常见问题排查

  1. 端口占用
    bash sudo lsof -i :80 # 检查80端口占用
  2. 权限问题
    bash sudo chown -R www-data:www-data /var/www/ # 修正目录权限
  3. 403 Forbidden
    • 检查 root 路径是否正确。
    • 确保 index 文件存在。

九、高级功能

  • 反向代理
    nginx location / { proxy_pass http://backend_server; proxy_set_header Host $host; }
  • 负载均衡
    nginx upstream backend { server 10.0.0.1; server 10.0.0.2; }

掌握这些操作后,可以覆盖 Nginx 的日常管理需求。遇到复杂场景时,建议结合官方文档(nginx.org)进一步研究。