Estou tentando configurar o nginx, mas não consigo fazê-lo funcionar, apesar das minhas múltiplas tentativas. O que eu preciso é:
- porta 80,
/download
é servida pelo nginx - porta 80, qualquer outra coisa é redirecionada para a mesma máquina, porta 8080
Isso funciona bem, mas agora preciso disso apenas no caso do root (http://meuhost/) o cliente é redirecionado para o aplicativo padrão em /Games
. Minha configuração atual está errada e me redireciona em um loop infinito. Tirei algumas ideias deaquimas não consegui fazer funcionar. Exemplos de redirecionamentos:
ex1: http://myhost/ --> http://myhost/Games --> http://localhost:8080/Games
ex2: http://myhost/Books --> http://localhost:8080/Books
eu tentei
location / {
proxy_pass http://localhost:8080/Games;
}
Mas isso parece afetar tudo (ex:/Livros,/XYZ, ...). Acho que um redirecionamento quando a raiz exata é especificada é o mais limpo.
Além disso, preciso replicar isso no HTTPS. Suponho que isso também funcionará no elemento "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;
...
}
}
Responder1
Qual é exatamente a questão aqui? Sua configuração funciona para mim:
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;
}
}
Histórico:
[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
O que você vê em seus registros? As solicitações não conseguem ser proxy ou o host local causa o problema? Como é a configuração do seu host local? Há muito pouca informação para poder ajudá-lo.
Além disso, preciso replicar isso no HTTPS. Suponho que isso também funcionará no elemento "stream".
Não tenho certeza do que você quer dizer, mas você pode simplesmente adicionar outro serverblock com a mesma configuração em listen 443
vez de listen 80
e adicionar as diretivas SSL.