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

无法用Nginx做WebSocket代理且proxy_params缺失,求排查解决方法

Hey there, let's fix both that proxy_params error and your WebSocket connection issue step by step:

First: Fix the "proxy_params not found" error

The include proxy_params; line relies on a default configuration file included with Nginx on Debian/Ubuntu systems, but it might be missing if you're using a different distro (like CentOS/RHEL) or a custom Nginx installation. You have two straightforward fixes here:

Option 1: Create the proxy_params file manually

Just make the file at /etc/nginx/proxy_params with these standard proxy headers (this matches what the default system file contains):

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;

Save the file, and the include line will work as intended.

Option 2: Skip the include and paste headers directly

Instead of relying on an external file, add those proxy headers straight into your server block. This makes your configuration self-contained and avoids dependency on system-specific Nginx files.

Second: Configure Nginx to properly handle WebSocket connections

WebSocket is a long-lived, bidirectional connection—regular proxy settings won't support it. Here's a complete, working server block example with all necessary settings:

server {
    listen 80;
    server_name your-app-domain.com; # Replace with your actual domain/IP

    # Adjust this location if your WebSocket uses a specific path (e.g., /ws)
    location / {
        proxy_pass http://localhost:3000; # Replace with your app's backend address/port
        proxy_http_version 1.1; # Mandatory for WebSocket support
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # Optional but useful standard proxy headers
        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;
        
        # Increase timeout to prevent premature WebSocket disconnections
        proxy_read_timeout 86400; # 24 hours—adjust as needed for your use case
    }
}

Quick post-config checks:

  • Run nginx -t to verify your configuration has no syntax errors
  • Restart Nginx to apply changes: sudo systemctl restart nginx (or sudo service nginx restart on older systems)
  • Ensure your client connects to ws://your-app-domain.com (not directly to your backend port)
  • Double-check that your backend application is actually listening for WebSocket connections on the address specified in proxy_pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:48:27