nginx를 구성하려고 하는데 여러 번 시도했는데도 작동하지 않습니다. 나에게 필요한 것은:
- 포트 80은
/download
nginx에서 제공됩니다. - 포트 80, 다른 모든 것은 동일한 시스템, 포트 8080으로 리디렉션됩니다.
이것은 잘 작동하지만 이제는 루트(http://myhost/) 클라이언트는 의 기본 앱으로 리디렉션됩니다 /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에서 복제해야 합니다. 나는 이것이 "스트림" 요소에서도 작동할 것이라고 생각합니다.
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
로그에서 무엇을 볼 수 있나요? 요청이 전혀 프록시되지 않습니까? 아니면 로컬 호스트가 문제를 유발합니까? 로컬호스트의 구성은 어떻게 생겼나요? 도움을 드릴 수 있는 정보가 너무 부족합니다.
또한 이를 HTTPS에서 복제해야 합니다. 나는 이것이 "스트림" 요소에서도 작동할 것이라고 생각합니다.
무슨 뜻인지 잘 모르겠지만 SSL 지시문 listen 443
대신 동일한 구성을 사용하여 다른 서버 블록을 추가할 수 있습니다.listen 80