Ubuntu系统下安装和配置Nginx的详细步骤

以下是基于知识库信息整理的Ubuntu系统下安装和配置Nginx的详细步骤:


一、环境准备

  1. 更新系统包
    打开终端,执行以下命令更新系统包列表和已安装的软件:

    1
    2
    sudo apt update
    sudo apt upgrade -y

二、安装Nginx

方法1:通过Ubuntu默认仓库安装(推荐)

  1. 安装Nginx
    直接使用apt命令安装:

    1
    sudo apt install nginx -y
  2. 启动并启用Nginx服务

    • 启动Nginx服务:

      1
      sudo systemctl start nginx
    • 设置开机自启:

      1
      sudo systemctl enable nginx
  3. 验证安装

    • 检查Nginx服务状态:

      1
      sudo systemctl status nginx

      如果显示active (running),说明安装成功。

    • 查看Nginx版本:

      1
      nginx -v

方法2:通过Nginx官方仓库安装(获取最新版本)

如果需要安装Nginx最新版本,可以添加官方仓库:

  1. 导入Nginx官方GPG密钥

    1
    curl https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
  2. 添加Nginx仓库到源列表

    1
    echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
  3. 设置优先级(避免与默认仓库冲突)

    1
    echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900" | sudo tee /etc/apt/preferences.d/99nginx
  4. 更新并安装Nginx

    1
    2
    sudo apt update
    sudo apt install nginx -y

三、配置防火墙

  1. 安装并启用防火墙(如未安装)
    Ubuntu默认使用ufw防火墙:

    1
    sudo ufw enable
  2. 开放Nginx所需端口
    允许HTTP(80端口)和HTTPS(443端口):

    1
    sudo ufw allow 'Nginx Full'  # 一键开放80和443端口

    或手动开放:

    1
    2
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
  3. 验证防火墙规则

    1
    sudo ufw status numbered

四、验证Nginx服务

  1. 通过浏览器访问
    在浏览器中输入服务器IP地址(如http://your_server_ip),若看到Nginx默认欢迎页面,则安装成功。

  2. 通过命令行测试

    1
    curl http://localhost

五、配置Nginx(可选)

1. 创建虚拟主机(Server Block)

  1. 创建网站根目录

    1
    2
    sudo mkdir -p /var/www/your_domain/html
    sudo chown -R $USER:$USER /var/www/your_domain/html
  2. 创建示例网页

    1
    echo "<h1>Welcome to Your Domain!</h1>" | sudo tee /var/www/your_domain/html/index.html
  3. 配置Nginx服务器块

    • 复制默认配置文件作为模板:

      1
      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/your_domain
    • 编辑配置文件:

      1
      sudo nano /etc/nginx/sites-available/your_domain

      修改以下内容:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      server {
      listen 80;
      server_name your_domain www.your_domain;

      root /var/www/your_domain/html;
      index index.html;

      location / {
      try_files $uri $uri/ =404;
      }
      }
  4. 启用配置

    1
    sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
  5. 测试配置并重启Nginx

    1
    2
    sudo nginx -t
    sudo systemctl restart nginx

2. 启用SSL/TLS(HTTPS)

使用Let’s Encrypt免费证书:

  1. 安装Certbot工具

    1
    sudo apt install certbot python3-certbot-nginx -y
  2. 获取并安装证书

    1
    sudo certbot --nginx -d your_domain -d www.your_domain
  3. 按提示完成配置,选择自动更新证书


六、常见问题排查

  1. 服务无法启动

    • 检查Nginx配置是否有语法错误:

      1
      sudo nginx -t
    • 查看错误日志:

      1
      sudo tail -f /var/log/nginx/error.log
  2. 端口被占用

    • 检查80端口占用情况:

      1
      sudo netstat -tulnp | grep :80
  3. 防火墙未开放

    • 确保已开放80和443端口:

      1
      sudo ufw status

七、其他注意事项

  • 管理Nginx服务

    1
    2
    3
    4
    5
    6
    7
    8
    # 重启服务
    sudo systemctl restart nginx

    # 停止服务
    sudo systemctl stop nginx

    # 平滑重启(不中断连接)
    sudo nginx -s reload
  • 查看Nginx日志

    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log

通过以上步骤,您可以在Ubuntu系统上成功安装并配置Nginx,满足基本的Web服务需求。如需更高级配置(如反向代理、负载均衡等),可参考Nginx官方文档或进一步调整配置文件。