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 servlet 运行
浏览器成功返回 index.html 页面,但是当 javascript 发出 AJAX 请求时'http://52.27.79.132/api/'我收到 404 错误
有人知道为什么吗?
答案1
您的版本中的正则表达式不正确。但是,您实际上不需要正则表达式匹配,因此您可以使用此版本:
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次或更多次。