在 Debian 上通过 Nginx 设置反向代理一般包括以下几个步骤。下面以**将请求代理到本地的 8080 端口服务(如 Java / Node / Python 应用)**为例说明。
sudo apt update
sudo apt install nginx -y
安装完成后 Nginx 会自动启动。
推荐在 /etc/nginx/sites-available/ 下新建站点配置:
sudo nano /etc/nginx/sites-available/my_proxy
示例配置(最常用):
server {
listen 80;
server_name example.com; # 改成你的域名或 _(无域名时)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
proxy_pass:后端服务地址X-Forwarded-*:让后端知道真实用户 IP 和协议server_name:
example.com_(匹配所有)sudo ln -s /etc/nginx/sites-available/my_proxy /etc/nginx/sites-enabled/
(可选)删除默认站点:
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx
sudo ufw allow 'Nginx Full'
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com
会自动帮你配置 SSL + 反向代理。
location /ws/ {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
location / {
proxy_pass http://backend;
}
}
journalctl -u nginx
cat /var/log/nginx/error.log
如果你有 具体场景(比如代理 Docker、内网服务、前后端分离、HTTPS、域名),可以告诉我,我可以直接给你一份完整配置。