nginx作为API的反向代理不能重定向完整的URL,参数,正文标头



我正在将我的节点js API(我用pm2管理(放在nginx的反向代理后面,这里没有问题。

但是因为,如果我发送任何请求,它就会变成"/"上的 GET。

我如何告诉nginx转发完整的URL,请求类型(PUT,OPTIONS,DELETE,...(,请求参数和请求正文?

这是我简单的nginx配置。

server {
listen      80;
listen [::]:80;
server_name api-prod.mysite.com www.api-prod.mysite.com localhost;
location / {
proxy_pass http://127.0.0.1:3111;
proxy_redirect off;
proxy_buffering off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

你的nginx配置看起来不错,除了你应该使用proxy_http_versionproxy_cache_bypass,因为有时(取决于版本(Nginx和nodejs使用不同的HTTP版本。

以下配置对我来说工作正常

server {
listen 80;
server_name arifjaunpur.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

最新更新