정적 파일의 프런트 엔드 웹 프록시로 nginx를 사용하고 백엔드 웹 서버에 Starman을 사용하여 Catalyst 응용 프로그램을 구현하려고합니다. (아파치 & FastCGI를 사용할 수 있으며 잘 작동하지만, 난 정말 밖으로 다림질 전체 PSGI/Plack 및 Starman 것은 좀하고 싶습니다)uri_for 리디렉션시 포트 번호 포함
Starman 괜찮 시작되고 http://localhost:5000
에 잘 내 요청을 처리 할 수 있습니다. 프론트 엔드 프록시로 사용하기 위해 nginx를 실행하면 내 URL은 $c->uri_for
메소드를 사용할 때마다 포트 번호 (5000)와 함께보기 흉하고 복잡해집니다.
예 :
$c->uri_for("/login") becomes http://myapp.example.com:5000/login rather than http://myapp.example.com/login
나는 일부 로그 그래서 난 X-Forwarded-Host
및 X-Forwarded-For
는 다음과 같이 설정되어 무엇을 볼 수 있습니다 생성되고있다. 정상적인 요청의 경우, nginx에서 오는 값이 설정되지만, $c->uri_for
메쏘드가 사용될 때마다 그 값은 존재하지 않습니다.
이 문제가 발생한 사람이 있습니까?
nginx 또는 Catalyst Catalyst 구성 중 다른 구성이 누락 되었습니까?
감사합니다.
의 nginx의 구성 :
이는 내가 설정 한 MyApp를의 설정에서, 동일한 물리적 서버에서 실행됩니다 불구하고server { listen 80; server_name myapp.example.com; location /static { root /data/users/MyApp/root; expires 30d; } location/{ proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:5000/; } }
이벤트 :
MyApp->config(using_frontend_proxy => 1)
버전 :
Catalyst : 5.80024 nginx : 0.7.67 Plack : 0.9942 Starman : 0.2006
이 내용은 https://metacpan.org/pod/Catalyst#PROXY-SUPPORT에 문서화되어 있으며 Catalyst에 내장되어 있으므로 승인 된 대답이어야하며 생성 된'.psgi' 파일을 수정할 필요가 없으며 로컬 설정으로 설정하십시오. –