插件窝 干货文章 Ubuntu下如何搭建与配置Nginx服务

Ubuntu下如何搭建与配置Nginx服务

Nginx 配置 sudo bash 72    来源:    2025-04-23

在Ubuntu系统下搭建和配置Nginx服务的完整步骤如下:


一、安装Nginx

# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx -y

# 验证安装(查看版本)
nginx -v

二、基础服务管理

# 启动Nginx
sudo systemctl start nginx

# 开机自启
sudo systemctl enable nginx

# 检查状态
sudo systemctl status nginx

# 重启/重载配置(修改配置后使用)
sudo systemctl restart nginx   # 完全重启
sudo systemctl reload nginx    # 平滑重载

三、防火墙配置

# 允许HTTP/HTTPS流量
sudo ufw allow 'Nginx Full'  # 或单独允许80/443端口

# 验证防火墙规则
sudo ufw status

四、配置文件结构

  • 主配置文件/etc/nginx/nginx.conf
  • 模块配置/etc/nginx/conf.d/
  • 站点配置/etc/nginx/sites-available/ (需软链接到sites-enabled/
  • 默认网页根目录/var/www/html

五、配置虚拟主机(示例)

  1. 创建网站目录:

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    
  2. 创建配置文件:

    sudo nano /etc/nginx/sites-available/example.com
    

    内容示例:

    server {
       listen 80;
       server_name example.com www.example.com;
       root /var/www/example.com/html;
       index index.html;
    
       location / {
           try_files $uri $uri/ =404;
       }
    }
    
  3. 启用配置:

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    
  4. 测试并重载:

    sudo nginx -t  # 测试配置语法
    sudo systemctl reload nginx
    

六、HTTPS配置(Let's Encrypt)

  1. 安装Certbot:

    sudo apt install certbot python3-certbot-nginx -y
    
  2. 获取证书:

    sudo certbot --nginx -d example.com -d www.example.com
    
  3. 自动续期测试:

    sudo certbot renew --dry-run
    

七、常用调优参数(在nginx.confhttp块中添加)

# 性能优化
worker_processes auto;  # 自动匹配CPU核心数
worker_connections 1024;
keepalive_timeout 65;
gzip on;  # 启用压缩

# 静态文件缓存
location ~* \.(jpg|jpeg|png|css|js)$ {
    expires 30d;
    add_header Cache-Control "public";
}

八、日志管理

  • 访问日志/var/log/nginx/access.log
  • 错误日志/var/log/nginx/error.log
  • 日志轮转配置:/etc/logrotate.d/nginx

九、故障排查

  1. 检查端口占用:

    sudo ss -tulnp | grep nginx
    
  2. 详细错误日志:

    sudo tail -f /var/log/nginx/error.log
    
  3. 测试特定配置:

    sudo nginx -T  # 查看完整加载的配置
    

完成以上步骤后,你的Nginx服务应该已正常运行。建议通过浏览器访问服务器IP或域名验证效果,或使用:

curl -I http://localhost

检查HTTP响应头。