Ubuntu安装Nginx

306 阅读2分钟

一、安装 Nginx

  1. 更新软件包列表
    确保系统仓库信息最新,避免安装旧版本:

    bash

    复制

    sudo apt update
    
  2. 安装 Nginx
    通过官方仓库直接安装:

    bash

    复制

    sudo apt install nginx -y
    
  3. 验证安装
    检查版本确认安装成功:

    bash

    复制

    nginx -v
    

二、管理 Nginx 服务

  1. 启动并设置开机自启

    bash

    复制

    sudo systemctl start nginx        # 立即启动
    sudo systemctl enable nginx       # 开机自启
    
  2. 检查服务状态
    确认服务已正常运行(按 q 退出):

    bash

    复制

    sudo systemctl status nginx
    
  3. 常用命令

    bash

    复制

    sudo systemctl restart nginx    # 重启服务(中断连接)
    sudo systemctl reload nginx     # 平滑重载(不中断连接)
    sudo systemctl stop nginx       # 停止服务
    

三、防火墙配置

  1. 允许 HTTP/HTTPS 流量
    使用 UFW 防火墙工具:

    bash

    复制

    sudo ufw allow 'Nginx Full'      # 允许 HTTP(80) + HTTPS(443)
    # 或单独允许
    # sudo ufw allow 'Nginx HTTP'
    # sudo ufw allow 'Nginx HTTPS'
    
  2. 验证防火墙规则

    bash

    复制

    sudo ufw status
    

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

  1. 创建网站目录结构
    以 example.com 为例:

    bash

    复制

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

    bash

    复制

    echo "Hello from example.com!" | sudo tee /var/www/example.com/html/index.html
    
  3. 创建配置文件
    新建虚拟主机配置:

    bash

    复制

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

    nginx

    复制

    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;
        }
    
        access_log /var/log/nginx/example.com.access.log;
        error_log /var/log/nginx/example.com.error.log;
    }
    
  4. 启用配置
    创建符号链接到 sites-enabled

    bash

    复制

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    
  5. 测试并应用配置

    bash

    复制

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

五、高级配置补充

  1. 配置 SSL 证书(Let's Encrypt)
    安装 Certbot 并获取证书:

    bash

    复制

    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d example.com -d www.example.com
    
  2. 反向代理配置示例
    将请求转发到本地应用(如运行在 3000 端口的 Node.js):

    nginx

    复制

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
  3. 性能优化
    调整 nginx.conf 中的全局参数:

    nginx

    复制

    worker_processes auto;          # 自动匹配 CPU 核心数
    keepalive_timeout 65;           # 保持连接时间
    gzip on;                        # 启用压缩
    

六、故障排查

  1. 检查日志
    实时监控错误日志:

    bash

    复制

    sudo tail -f /var/log/nginx/error.log
    
  2. 端口占用检查
    确认 80/443 端口未被其他服务占用:

    bash

    复制

    sudo netstat -tulpn | grep ':80'
    

七、关键文件位置

文件/目录作用说明
/etc/nginx/nginx.conf主配置文件
/etc/nginx/sites-available/可用虚拟主机配置
/etc/nginx/sites-enabled/已启用虚拟主机配置(符号链接)
/var/www/html默认网站根目录
/var/log/nginx/访问日志和错误日志

通过以上步骤,您已完成 Nginx 的基础配置,并可根据需求扩展高级功能。建议定期检查日志并更新 SSL 证书。