Nginx新手指南


Ubuntu 上安装 Nginx 并进行自定义配置的详细教程:


1. 安装 Nginx

更新软件包列表

确保软件包列表是最新的:

sudo apt update

安装 Nginx

使用以下命令安装 Nginx:

sudo apt install nginx -y

启动 Nginx 服务

安装完成后,启动并设置 Nginx 为开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

检查 Nginx 状态

确保 Nginx 正常运行:

sudo systemctl status nginx

访问服务器的 IP 地址,确认是否显示 Nginx 欢迎页面:

http://<your_server_ip>

2. Nginx 基本文件结构

Nginx 的主要配置文件和目录:

  • 主配置文件/etc/nginx/nginx.conf
  • 站点配置文件:
    • 默认站点配置:/etc/nginx/sites-available/default
    • 启用的站点配置:/etc/nginx/sites-enabled/
  • 日志文件:
    • 访问日志:/var/log/nginx/access.log
    • 错误日志:/var/log/nginx/error.log
  • 网页根目录/var/www/html

3. 自定义 Nginx 配置

3.1 创建自定义站点配置

  1. 新建网站目录: 假设我们要配置一个域名 example.com,可以这样操作:

    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. 创建测试文件: 在目录中创建一个测试文件:

    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;
    
        access_log /var/log/nginx/example.com.access.log;
        error_log /var/log/nginx/example.com.error.log;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
  4. 启用站点配置: 创建符号链接到 sites-enabled

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  5. 测试 Nginx 配置: 确保配置文件语法正确:

    sudo nginx -t
  6. 重新加载 Nginx 服务: 应用新配置:

    sudo systemctl reload nginx

3.2 配置 HTTPS(使用 Let’s Encrypt)

为站点配置 HTTPS:

  1. 安装 Certbot 和 Nginx 插件:

    sudo apt install certbot python3-certbot-nginx -y
  2. 使用 Certbot 自动生成 SSL 证书:

    sudo certbot --nginx -d example.com -d www.example.com
  3. Certbot 会自动修改配置文件,并设置自动续期。

验证 HTTPS:

https://example.com

3.3 配置反向代理

假设你有一个运行在端口 3000 的应用程序,可以将请求转发到该端口。

修改站点配置文件:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

重新加载 Nginx:

sudo systemctl reload nginx

4. 常见操作和管理命令

重启 Nginx

sudo systemctl restart nginx

重新加载配置

sudo systemctl reload nginx

停止 Nginx

sudo systemctl stop nginx

检查 Nginx 配置语法

sudo nginx -t

查看 Nginx 日志

  • 访问日志:

    tail -f /var/log/nginx/access.log
  • 错误日志:

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

5. 高级配置(可选)

限流与防止 DDoS

server 块中添加限流配置:

limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

server {
    location / {
        limit_req zone=one burst=5;
    }
}

Gzip 压缩

启用 Gzip 压缩以优化传输效率:

gzip on;
gzip_types text/plain application/json application/javascript text/css;

以上是安装和自定义配置 Nginx 的详细指南。如果有任何问题或特殊需求(如负载均衡、缓存配置等),可以告诉我! 😊


文章作者: CHAO
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CHAO !
评论
  目录