插件窝 干货文章 nginx端口转发怎么设置

nginx端口转发怎么设置

端口 proxy 转发 server 357    来源:    2025-04-07

Nginx端口转发设置指南

Nginx可以通过反向代理实现端口转发功能,将来自一个端口的请求转发到另一个端口或服务器。以下是几种常见的端口转发配置方法:

1. 基本端口转发配置

server {
    listen 80;  # 监听80端口
    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;  # 转发到本机的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;
    }
}

2. 转发到不同服务器

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://192.168.1.100:8080;  # 转发到另一台服务器的8080端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

3. 基于路径的转发

server {
    listen 80;
    server_name example.com;

    location /app1/ {
        proxy_pass http://localhost:3000/;  # 转发到3000端口
    }

    location /app2/ {
        proxy_pass http://localhost:4000/;  # 转发到4000端口
    }
}

4. HTTPS端口转发

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

5. TCP/UDP端口转发(需要stream模块)

stream {
    server {
        listen 3306;  # 监听3306端口
        proxy_pass db_server:3306;  # 转发到数据库服务器的3306端口
    }
}

配置完成后

  1. 检查配置文件语法:

    nginx -t
    
  2. 重新加载Nginx配置:

    nginx -s reload
    

注意事项

  • 确保防火墙允许相关端口的通信
  • 转发HTTPS时可能需要配置SSL证书
  • 使用proxy_set_header传递原始请求头信息
  • 对于大量并发连接,可能需要调整proxy_buffer_size等参数

需要更具体的配置帮助,可以提供您的具体需求场景。