You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置NGINX转发请求至LAMP环境的Websocket服务

NGINX 转发配置实现方案

咱们一步步来搞定这个转发需求,需要在部署于10.10.10.1的NGINX上配置两个核心的server块:一个负责HTTP到HTTPS的强制跳转,另一个处理HTTPS请求转发到后端LAMP服务,同时适配WebSocket的特殊要求。

完整配置示例

将以下内容添加到NGINX的配置文件(比如/etc/nginx/conf.d/proxy.conf)中:

# 处理HTTP请求,强制跳转至HTTPS
server {
    listen 80;
    server_name 10.10.10.1;

    # 匹配所有路径(包括/randomstring/开头的请求),统一跳转HTTPS
    location / {
        return 301 https://$host$request_uri;
    }
}

# 处理HTTPS请求,转发到后端LAMP服务
server {
    listen 443 ssl;
    server_name 10.10.10.1;

    # 替换为你的SSL证书和密钥路径
    ssl_certificate /path/to/your/server.crt;
    ssl_certificate_key /path/to/your/server.key;

    # 匹配/randomstring/路径的转发规则
    location ^~ /randomstring/ {
        # 转发到后端LAMP服务的8080端口
        proxy_pass http://172.168.1.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;

        # 适配WebSocket升级(针对/ws路径的长连接)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # 可选:延长超时时间,避免WebSocket长连接被NGINX主动断开
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
    }

    # 如果需要处理其他路径,可以在这里添加更多location规则
}

关键配置说明

  • HTTP转HTTPS的server块:监听10.10.10.1的80端口,不管请求路径是什么,都强制跳转到HTTPS,确保所有访问都走加密连接。
  • HTTPS转发的server块:
    • ^~ /randomstring/:用^~前缀确保这个location优先匹配,避免被其他正则location覆盖。
    • proxy_pass:把请求转发到后端LAMP服务的http://172.168.1.1:8080;如果需要把/randomstring/前缀也传递给后端,就改成proxy_pass http://172.168.1.1:8080/randomstring/;,根据你的实际需求调整。
    • WebSocket相关配置:proxy_http_version 1.1和Upgrade/Connection头是WebSocket正常工作的必要条件,因为WebSocket依赖HTTP/1.1的连接升级机制。
    • 超时设置:针对WebSocket长连接,延长超时时间可以避免连接被NGINX主动断开。

验证与生效

配置写完后,先检查NGINX配置是否合法:

nginx -t

如果没有报错,重启NGINX让配置生效:

systemctl restart nginx

这样就能实现你需要的转发流程:http://10.10.10.1/randomstring/ → https://10.10.10.1/randomstring/ → http://172.168.1.1:8080,同时后端的WebSocket服务(/ws路径)也能正常运行。

内容的提问来源于stack exchange,提问作者RajDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:40:58