Я могу заставить Nginx отвечать на www.example.com. Но я хотел бы перенаправить www.example.com/site0 на один конкретный сервер, а www.example.com/site1 на другой. Это работает, когда я указываю на корневое местоположение www.example.com.
Но я не могу заставить Nginx разрешить www.example.com/site0 одному конкретному серверу
Вот моя конфигурация:
server {
listen 80;
server_name www.example.com localhost;
location /site0/ {
proxy_pass http://0.0.0.0:5000;
proxy_set_header Host $host;
}
}
Попытка доступа к www.example.com/site0/ возвращает
192.168.0.254 - - [14/Mar/2018:21:13:28 +0100] "GET /site0 HTTP/1.1" 301 185 "-" "curl/7.54.0"
192.168.0.254 - - [14/Mar/2018:21:13:31 +0100] "GET /site0/ HTTP/1.1" 404 233 "-" "curl/7.54.0"
Я не понимаю, почему это не работает. Я использую этот пример для настройки своего сервера: https://gist.github.com/soheilhy/8b94347ff8336d971ad0
редактировать:( ошибка была:
proxy_pass http://0.0.0.0:5000/;
Обратите внимание на косую черту в конце целевого URL. Я не знаю, почему это не важно для местоположения '/'
решение1
Довольно большая разница между
proxy_pass http://0.0.0.0:5000;
И
proxy_pass http://127.0.0.1:5000;