我試圖運行使用nginx的反向代理,但與URI匹配Nginx的位置和URI匹配
Application_1 8080 Application_2運行在8181上運行
/API/V1/SQL網址是問題定向到Application_1
/api/v1/map和/ tiles url指向Application_2
以及其餘的url到rails應用程序。以下是我對nginx配置的嘗試,但我認爲Application_2匹配存在錯誤。
upstream application_1{
server 127.0.0.1:8080;
}
upstream application_2{
server 127.0.0.1:8181;
}
location ^~ /api/v1/sql/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
proxy_pass http://application_1;
break;
error_page 404 = /;
}
location ^~ (/api/v1/map/ | /tiles) {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
proxy_pass http://application_2;
break;
error_page 404 = /;
}
location/{
if ($http_origin) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET,POST,OPTIONS,PUT";
add_header Access-Control-Allow-Headers Content-Type;
add_header Access-Control-Max-Age 86400;
}
passenger_spawn_method direct;
root /var/www/html ;
passenger_enabled on;
rails_env development;
}
當我嘗試後像http://mywebsite.com/api/v1/map?q=abcd我收到狀態消息「301永久移動」,但是當我從應用程序直接訪問http://mywebsite.com:8181/api/v1/map?q=abcd。它工作正常。
此外,http://mywebsite.com/api/v1/maps必須由軌道,而不是application_2
送達誰能幫我正確nginx的locatin配置?
感謝