2017-01-12 24 views
1

私のNginxがインストールされ、実行されているのは、/etc/nginx/nginx.confの設定です。/api/*は、同じサーバー上のポート9100(type http://myhost:9100/api/apps)で動作しているtomcatサーバーに転送します。 '/ usr/share/nginx/html'の下の静的ファイルを提供してください。今度はhttp://myhost/api/appsと入力してください。何が問題なのですか?Nginxリバースプロキシリターン404

upstream myserver { 
    server localhost:9100 weight=1; 
} 

server { 
    listen  80 default_server; 
    listen  [::]:80 default_server; 
    server_name _; 
    root   /usr/share/nginx/html; 

    # Load configuration files for the default server block. 
    include /etc/nginx/default.d/*.conf; 



    location ^~ /api/ { 
     proxy_pass http://myserver/; 
    } 

    location/{ 
    } 
} 

答えて

2

proxy_pass文は、随意上流にそれを渡す前にURIを変更することができます。詳細はthis documentを参照してください。この形態で

location ^~ /api/ { 
    proxy_pass http://myserver/; 
} 

URI /api/foohttp://myserver/fooに渡されます。 proxy_passの文から後続/を削除することによって

location ^~ /api/ { 
    proxy_pass http://myserver; 
} 

URI /api/fooは今http://myserver/api/fooに渡されます。

+0

ありがとうございます、それはあなたの言ったように動作します。 – July

関連する問題