私は、DockerでnginxをWebアプリケーションの前に座って使用していますが、POST要求を除いてほとんどの部分で動作しています。私は、任意のURLとポートからの接続を受け入れ、それをWebアプリケーションの特定のホスト名とポートにプロキシできるようにする必要があります。これは通常のWeb要求では機能しますが、POSTでは分解されます。ユーザーを認証するときに、サーバーにのみ127.0.0.1:8080
からの接続を受け付けますnginx POST Port Rewriting
server {
listen *:8080;
server_name _;
proxy_set_header Host 127.0.0.1:8080;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $proxy_host;
proxy_set_header X-Real-IP 127.0.0.1;
location/{
proxy_pass http://example.com:8080/
rewrite "^(/.+?):\d+?/(.+?)$" $1:8080/$2 break;
}
}
:ここに私のnginx.confです。私はnginxを使用しています:1.13.6-アルパイン。ありがとう。
編集:ここでは
は、Webサーバからのサンプルログ出力されます:ここで
17:11:26,435 INFO [stdout] (http-0.0.0.0:8080-1) javax.servlet.ServletException: CORS origin denied 127.0.0.1:7001 not on allowed list:[]
はnginxのコンテナからのログエントリです:
172.18.0.1 - - [02/Nov/2017:17:11:26 +0000] "POST /suite/auth?environment=tempo HTTP/1.1" 401 996 "http://127.0.0.1:7001/suite/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36" "-"
私がしようとしていますDocker Swarmクラスタで複数のWebアプリケーションインスタンスを起動することはできますが、IPアドレスまたはホスト名を動的に割り当てる機能はありません私は各インスタンスに固有のポート番号を使用するつもりでした。私は必要なだけ多くの一意のインスタンスを起動できるように、私の要求をプロキシするためにnginxを取得しようとしています。
エラーとは何ですか?ログはありますか? –
POSTリクエストは書き換えによってGETリクエストに変更されるため、POSTリクエストを書き換えることはできません –