Nginx 如何对所有传入的API请求使用代理传递
我正在使用nginx设置一个服务器来托管我的网站,但是我的后端工作有问题。目前我只使用Restful api,并试图在nginx中使用ProxyPass来访问我的后端,但我必须为每个api端点添加一个位置。例如,我的后端服务器是从本地主机上的pm2运行的:5000,我的所有端点http://myip/api/(我的端点),如果我将nginx设置为如下所示:Nginx 如何对所有传入的API请求使用代理传递,nginx,server,nginx-reverse-proxy,Nginx,Server,Nginx Reverse Proxy,我正在使用nginx设置一个服务器来托管我的网站,但是我的后端工作有问题。目前我只使用Restful api,并试图在nginx中使用ProxyPass来访问我的后端,但我必须为每个api端点添加一个位置。例如,我的后端服务器是从本地主机上的pm2运行的:5000,我的所有端点http://myip/api/(我的端点),如果我将nginx设置为如下所示: location / { try_files $uri $uri/ =404; }
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:5000/api;
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;
}
location /api {
proxy_pass http://localhost:5000/;
}
它仍然不起作用。设置nginx以处理从前端到后端的所有请求的最佳方法是什么?谢谢大家! 当您使用
location/api{}
时,它将/api添加到后面的proxy\u pass
中,因此您最终得到http://localhost:5000/api/api
尝试仅使用根url,如下所示:
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:5000/api;
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;
}
location /api {
proxy_pass http://localhost:5000/;
}
当您使用
location/api{}
时,它会将/api添加到后面的proxy\u pass
中,因此您最终得到http://localhost:5000/api/api
尝试仅使用根url,如下所示:
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://localhost:5000/api;
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;
}
location /api {
proxy_pass http://localhost:5000/;
}