插件窝 干货文章 ubuntu下nginx服务器如何配置

ubuntu下nginx服务器如何配置

Nginx 配置 sudo example 306    来源:    2025-04-25

在Ubuntu系统下配置Nginx服务器的详细步骤如下:


一、安装Nginx

# 更新软件包列表
sudo apt update

# 安装Nginx
sudo apt install nginx -y

# 验证安装(默认会自动启动)
systemctl status nginx

二、基础配置

1. 关键目录说明

  • 主配置文件/etc/nginx/nginx.conf
  • 虚拟主机配置/etc/nginx/sites-available/(存放配置模板)
  • 启用的站点/etc/nginx/sites-enabled/(通过软链接激活)
  • 默认网页根目录/var/www/html
  • 日志文件/var/log/nginx/access.logerror.log

2. 管理Nginx服务

# 启动/停止/重启/重载
sudo systemctl start|stop|restart|reload nginx

# 设置开机自启
sudo systemctl enable nginx

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

示例:配置一个静态网站

  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    
  2. 创建测试页面

    echo "<h1>Welcome to Example.com</h1>" > /var/www/example.com/html/index.html
    
  3. 创建虚拟主机配置

    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;
       }
    }
    
  4. 启用配置

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

    sudo nginx -t  # 检查语法
    sudo systemctl reload nginx
    

四、高级配置

1. 启用HTTPS(使用Let's Encrypt)

# 安装Certbot
sudo apt install certbot python3-certbot-nginx -y

# 获取证书(自动修改Nginx配置)
sudo certbot --nginx -d example.com -d www.example.com

# 设置自动续期
sudo certbot renew --dry-run

2. 反向代理配置

server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://localhost:3000;  # 转发到本地Node.js应用
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. 负载均衡(示例)

upstream backend {
    server 10.0.0.1:80 weight=3;
    server 10.0.0.2:80;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

五、常见问题排查

  1. 端口冲突

    sudo netstat -tulnp | grep :80  # 检查占用端口的进程
    
  2. 权限问题

    sudo chown -R www-data:www-data /var/www/  # Nginx默认用户为www-data
    
  3. 查看日志

    tail -f /var/log/nginx/error.log
    

六、防火墙设置

# 允许HTTP/HTTPS
sudo ufw allow 'Nginx Full'
sudo ufw enable

通过以上步骤,您可以在Ubuntu上完成Nginx的基础到高级配置。根据实际需求调整参数即可。