我正在将我的节点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_version
和proxy_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;
}
}