温馨提示×

Debian上部署Nginx反向代理步骤

小樊
37
2025-11-08 08:39:18
栏目: 智能运维

1. 更新系统及安装Nginx
首先确保Debian系统包列表最新,然后通过APT包管理器安装Nginx:

sudo apt update
sudo apt install nginx

安装完成后,Nginx会自动启动,可通过sudo systemctl status nginx验证服务状态(显示“active (running)”即为正常)。

2. 配置Nginx反向代理

2.1 创建/编辑配置文件

建议在/etc/nginx/sites-available/目录下创建新的配置文件(如yourdomain.com),而非直接修改默认配置:

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

2.2 添加反向代理配置

在配置文件中添加以下内容(需替换为你的实际域名和后端服务器信息):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;  # 替换为你的域名(支持多域名)

    location / {
        proxy_pass http://backend_server:port;      # 替换为后端服务器IP或域名及端口(如192.168.1.100:8080)
        proxy_set_header Host $host;                # 传递客户端请求的原始域名
        proxy_set_header X-Real-IP $remote_addr;    # 传递客户端真实IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  # 传递客户端IP及代理链IP
        proxy_set_header X-Forwarded-Proto $scheme; # 传递请求使用的协议(http/https)
    }
}

关键参数说明

  • listen 80:监听HTTP默认端口(若需HTTPS需改为443并配置证书);
  • server_name:指定服务器标识,用于匹配客户端请求的域名;
  • proxy_pass:后端服务器地址(支持域名或IP,若为域名需确保DNS解析正确);
  • proxy_set_header:转发客户端真实信息,避免后端服务器无法识别原始请求。

3. 启用配置文件
/etc/nginx/sites-available/yourdomain.com链接到/etc/nginx/sites-enabled/目录(使配置生效):

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/

若存在默认配置文件(/etc/nginx/sites-enabled/default),建议删除或禁用(sudo rm /etc/nginx/sites-enabled/default),避免端口冲突。

4. 测试并重载Nginx

4.1 语法检查

运行以下命令验证配置文件是否有语法错误:

sudo nginx -t

若输出nginx: configuration file /etc/nginx/nginx.conf test is successful,则表示配置正确。

4.2 重载配置

无错误则重载Nginx,使新配置生效:

sudo systemctl reload nginx

5. 验证反向代理功能
在浏览器中访问http://yourdomain.com,若看到后端服务器的响应页面(如后端应用首页),则说明反向代理配置成功。也可通过curl -I http://yourdomain.com查看响应头,确认X-Real-IPX-Forwarded-For等字段是否包含客户端真实信息。

6. 可选:配置HTTPS(推荐)
为提升安全性,建议使用Let’s Encrypt免费获取SSL证书并配置HTTPS:

6.1 安装Certbot

sudo apt install certbot python3-certbot-nginx

6.2 获取并安装证书

运行Certbot命令,自动获取证书并修改Nginx配置:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按照提示完成验证(通常需输入邮箱并同意服务条款),Certbot会自动配置Nginx的HTTPS监听端口(443)及证书路径。

6.3 验证HTTPS

再次访问https://yourdomain.com(浏览器地址栏应显示锁图标),确认HTTPS连接正常。

0