nginx proxy pass 404 ошибка, не понимаю, почему
Я пытаюсь передать все вызовы / api моему веб-сервису, но я продолжаю получать 404s со следующей конфигурацией. Вызовы / возврат индекса.html как ожидалось. Кто-нибудь знает почему?
upstream backend{
server localhost:8080;
}
server {
location /api {
proxy_pass http://backend;
}
location / {
root /html/dir;
}
}
подробнее здесь
adept@HogWarts:/etc/nginx/sites-available$ curl -i localhost/api/authentication/check/user/email
HTTP/1.1 404 Not Found
Server: nginx/1.2.1
Date: Mon, 22 Apr 2013 22:49:03 GMT
Content-Length: 0
Connection: keep-alive
adept@HogWarts:/etc/nginx/sites-available$ curl -i localhost:8080/authentication/check/user/email
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 22 Apr 2013 22:49:20 GMT
Transfer-Encoding: chunked
{"user":["false"],"emailAddress":["false"]}
3 ответов
этой
location /api {
proxy_pass http://backend;
}
должен быть
location /api/ {
proxy_pass http://backend/;
}
по какой-то причине proxy_pass в Nginx 1.6.2 вырезает заголовок "Host" перед передачей в upstream, и запрос ловит сервер по умолчанию, и даже proxy_header_pass не помогает, поэтому я должен явно установить его:
location / {
proxy_set_header Host $host;
proxy_pass http://backend;
}
Я забыл прослушать порт 80, исправил его.
"http" часть конфигурации nginx, at:/etc/nginx / nginx.конф, ниже:
http {
server {
listen 192.111.111.11:80;
location /path1/ {
proxy_pass http://127.0.0.1:3000/path1/
}
}
}
сейчас, посетив
http://192.111.111.11/path1/
получите результат доступа
http://127.0.0.1:3000/path1/
Примечание:
Замените 192.111.111.11 на ваш IP-адрес, указанный выше.
Выполните команду "ifconfig", часть "inet addr" даст ваш IP-адрес адрес