Сервер 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/*;
Сервлет Java запускается, когда причальный сервер получает запрос к "/"
Браузер успешно возвращает страницу index.html, но когда javascript делает AJAX-запрос к '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 или более раз.