Jettyサーバーはlocalhost:8080で実行され、curl(PuTTY)を介してリクエストを行うと、正常に応答します。
curl -H "Content-Type: application/json" -X POST -d '{"message":"Hi"}' http://localhost:8080
私は次のnginx.conf構成を持っています:
server{
listen 80;
server_name 52.27.79.132;
root /data/www;
index index.html
# static files: .png, .css, .js...
location /static/ {
root /data/www;
}
location ^~/api/*{
proxy_pass http://localhost:8080;
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;
}
}
# include /etc/nginx/sites-enabled/*;
Jettyサーバーが「/」へのリクエストを取得すると、Javaサーブレットが実行されます
ブラウザはindex.htmlページを正常に返しますが、javascriptがAJAX-requestを ' http://52.27.79.132/api/ 'にすると、404エラーが発生します
理由を知っている人はいますか?
お使いのバージョンでは正規表現が正しくありません。ただし、実際には正規表現のマッチングは必要ないため、次のバージョンを使用できます。
location /api {
proxy_pass http://localhost:8080;
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;
}
何らかの理由で正規表現を使用する場合、最初の行は次のようになります。
location ^~ ^/api/.*
ドットは任意の文字を意味し、アスタリスクは0回以上繰り返すことを意味します。
元のロケーション行で、/
0回以上繰り返しました。