Я пытаюсь настроить nginx, но не могу заставить его работать, несмотря на мои многочисленные попытки. Мне нужно:
- порт 80,
/download
обслуживается nginx - порт 80, все остальное перенаправляется на тот же компьютер, порт 8080
Это работает отлично, но теперь мне это нужно только в случае с рутом (http://мойхост/) клиент перенаправляется в приложение по умолчанию в /Games
. Моя текущая конфигурация неверна и перенаправляет меня в бесконечный цикл. Я почерпнул несколько идей изздесьно не смог заставить это работать. Примеры перенаправлений:
ex1: http://myhost/ --> http://myhost/Games --> http://localhost:8080/Games
ex2: http://myhost/Books --> http://localhost:8080/Books
я пытался
location / {
proxy_pass http://localhost:8080/Games;
}
Но это, кажется, действует на все (например: /Books, /XYZ, ...). Я думаю, что перенаправление, когда указан точный корень, является самым чистым.
Также мне нужно повторить это на HTTPS. Я полагаю, что это также будет работать через элемент "stream".
nginx.conf:
http {
server {
listen 80;
root /home/www/;
location = / {
return 301 http://$host/Games;
}
location / {
proxy_pass http://localhost:8080;
}
location /download/ {
....
}
}
}
stream {
server {
listen 443;
...
}
}
решение1
В чем именно вопрос? Ваша конфигурация мне подходит:
server {
listen 80;
listen [::]:80;
server_name 192.168.0.2;
root /var/www;
location = / {
return 301 http://$host/folder;
}
location / {
proxy_pass http://otherserver:80;
}
}
Журналы:
[22/Feb/2018:17:04:55 +0100] "GET / HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder HTTP/1.1" 301
[22/Feb/2018:17:04:55 +0100] "GET /folder/ HTTP/1.1" 200
[22/Feb/2018:17:11:29 +0100] "GET /index.html HTTP/1.0" 200
Что вы видите в своих журналах? Запросы вообще не проксируются или проблема в localhost? Как выглядит конфигурация localhost? Слишком мало информации, чтобы помочь вам.
Также мне нужно повторить это на HTTPS. Я полагаю, что это также будет работать через элемент "stream".
Не совсем понимаю, что вы имеете в виду, но вы можете просто добавить еще один блок сервера с той же конфигурацией listen 443
вместо listen 80
и добавить директивы ssl.