在 Linux 上使用 Nginx 做代理,通常指 反向代理(Reverse Proxy)。下面从安装 → 基础配置 → 常见示例给你讲清楚。
yum install -y nginx
systemctl enable nginx
systemctl start nginx
apt update
apt install -y nginx
systemctl enable nginx
systemctl start nginx
假设:
example.com127.0.0.1:8080编辑配置:
vi /etc/nginx/conf.d/proxy.conf
内容:
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;
}
}
保存后:
nginx -t
systemctl reload nginx
location / {
proxy_pass http://127.0.0.1:3000;
}
location /api/ {
proxy_pass http://127.0.0.1:9000/;
}
⚠️ 注意:
proxy_pass 末尾加 / → /api/test → http://ip:9000/test/ → /api/test → http://ip:9000/api/testserver {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
}
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
location / {
proxy_pass http://backend;
}
}
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffering on;
如果你说的是客户端通过 Nginx 上网(正向代理):
server {
listen 3128;
resolver 8.8.8.8;
location / {
proxy_pass http://$http_host$request_uri;
}
}
⚠️ 正向代理不适合 HTTPS(需要特殊模块)
nginx -t
journalctl -u nginx
tail -f /var/log/nginx/error.log
如果你能告诉我:
我可以直接帮你写完整可用配置。