1. 更新系统及安装Nginx
首先确保Debian系统包列表最新,然后通过APT包管理器安装Nginx:
sudo apt update
sudo apt install nginx
安装完成后,Nginx会自动启动,可通过sudo systemctl status nginx验证服务状态(显示“active (running)”即为正常)。
2. 配置Nginx反向代理
建议在/etc/nginx/sites-available/目录下创建新的配置文件(如yourdomain.com),而非直接修改默认配置:
sudo nano /etc/nginx/sites-available/yourdomain.com
在配置文件中添加以下内容(需替换为你的实际域名和后端服务器信息):
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
运行以下命令验证配置文件是否有语法错误:
sudo nginx -t
若输出nginx: configuration file /etc/nginx/nginx.conf test is successful,则表示配置正确。
无错误则重载Nginx,使新配置生效:
sudo systemctl reload nginx
5. 验证反向代理功能
在浏览器中访问http://yourdomain.com,若看到后端服务器的响应页面(如后端应用首页),则说明反向代理配置成功。也可通过curl -I http://yourdomain.com查看响应头,确认X-Real-IP、X-Forwarded-For等字段是否包含客户端真实信息。
6. 可选:配置HTTPS(推荐)
为提升安全性,建议使用Let’s Encrypt免费获取SSL证书并配置HTTPS:
sudo apt install certbot python3-certbot-nginx
运行Certbot命令,自动获取证书并修改Nginx配置:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成验证(通常需输入邮箱并同意服务条款),Certbot会自动配置Nginx的HTTPS监听端口(443)及证书路径。
再次访问https://yourdomain.com(浏览器地址栏应显示锁图标),确认HTTPS连接正常。