nginx配置websocket及后端地址用域名代理

1. 最近搞了个小程序,部署上线时要求后端地址必须是https的才行,所以又申请了个域名和证书用来配置nginx代理,然后发现简单的配置后接口请求会报400,查询后发现需要配置proxy_set_header 这个头,所以在这记录下。其实主要的配置是下面这个配置好后你在访问地址https://glxt.test.com, 就会请求你的ip:端口 了

server {
        listen       443 ssl;

        server_name  glxt.test.com;
 
        ssl_certificate      cert/glxt.test.com.pem;
        ssl_certificate_key  cert/glxt.test.com.key;
 
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
 
 
        location / {

            proxy_pass http://localhost:18019;
	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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        }
    }
### 回答1: 要用 Nginx 配置 WebSocket 代理,需要以下步骤: 1. 确保 Nginx 版本支持 WebSocket,需要 Nginx 1.3 或更高版本。 2. 在 Nginx 配置文件中添加以下内容: ``` map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } } upstream backend { server backend.example.com:8080; } ``` 3. 重启 Nginx 服务器使配置生效。 以上是一个简单的 Nginx WebSocket 代理配置,根据你的实际需求可以进行相应的修改。 ### 回答2: 要使用Nginx配置WebSocket代理,需要按照以下步骤进行设置: 1. 确保你已经安装了Nginx,并且版本在1.3.13或以上。 2. 在Nginx配置文件中,找到或创建一个server块来处理WebSocket的请求。可以在http块中的server块内添加以下配置: ``` server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /backend { proxy_pass http://websocket_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` 3. 修改上述配置中的example.com为你的域名,在location /backend中的http://websocket_server改为你的WebSocket服务器地址。 4. 保存并关闭Nginx配置文件。 5. 配置WebSocket服务器后端,确保它能够接收和处理WebSocket请求。 6. 检查Nginx配置文件是否有语法错误,使用以下命令进行验证: ``` nginx -t ``` 7. 如果没出现错误信息,重新加载Nginx配置文件: ``` nginx -s reload ``` 8. 确保Nginx正在运行,并监视日志文件以调试任何问题。可以使用以下命令启动Nginx: ``` service nginx start ``` 这样,你就成功地配置Nginx作为WebSocket代理。注意,这里的配置只是一个示例,你可以根据自己的需求进行修改和调整。 ### 回答3: 要配置NGINX代理WebSocket,您需要按照以下步骤进行操作: 1. 确保您已经安装了NGINX,并且当前运行的是支持WebSocket的版本。 2. 打开NGINX配置文件。可以在`/etc/nginx/nginx.conf`或者`/etc/nginx/conf.d/`路径下找到该文件。 3. 在配置文件中找到`http`区块,并在此区块中添加以下内容: ``` map $http_upgrade $connection_upgrade { default upgrade; '' close; } ``` 4. 在`server`区块中,添加以下内容: ``` location /websocket-endpoint { proxy_pass http://backend-server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } ``` 替换`/websocket-endpoint`为您WebSocket的实际端点地址,并将`http://backend-server`替换为实际处理WebSocket请求的服务器地址。 5. 保存配置文件并关闭。 6. 验证配置文件语法是否正确,可以使用`nginx -t`命令进行检查。 7. 重新启动NGINX服务,以使配置文件生效。可以使用`systemctl restart nginx`或者`service nginx restart`命令。 现在,您已经成功配置NGINX代理WebSocket。当客户端请求到达`/websocket-endpoint`时,NGINX将会将这些请求转发到后台服务器,并且将WebSocket标头(Upgrade和Connection)正确传递到后端服务器
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值