nginx - 두 개의 역방향 프록시 후에 리디렉션이 실패합니다.
怪我咯
怪我咯 2017-05-16 17:24:31
0
2
1214

인트라넷에는 웹 서비스를 제공하는 3개의 포트가 있는 서버가 있습니다. 서버는 nginx, apache 및 serv-u입니다. 이제 세 가지 서비스를 외부 네트워크로 전달해야 합니다.

  • 라우터 제어 권한이 없습니다
  • 네트워크 관리에서는 PortTunnel만 사용하여 포트 80을 외부 네트워크 882로 전달합니다

그래서 포트 포워딩에 병합하고 nginx를 사용하여 호스트를 역으로 결정하여 문제를 해결하고 싶었습니다.
nginx.conf는 다음과 같습니다:

으아악

3개의 코드가 각각 3개의 항목을 대체합니다. Host를 사용하여 구문 분석한 후에는 정상이지만 네트워크 관리 시스템에서 설정한 외부 네트워크를 사용하면 문제가 발생합니다.

http://xxx.com:882/folder 접속 후
자동으로 http://xxx.com:80/folder/

로 이동합니다.

무엇이 문제인가요? nginx.conf가 잘못 구성되어 있습니까?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(2)
左手右手慢动作

네, nginx 문서를 오랫동안 뒤져본 끝에 답을 찾았습니다.
세 사이트의 구성에
proxy_redirect "http://10.110.39.2:80" "http://$host:882" ;
문장을 추가하세요. 그게 다야.

左手右手慢动作

게시된 구성 파일에는 문제가 표시되지 않습니다. 따라서 다음 제안만 (순서대로) 드릴 수 있습니다:

  1. access_log를 열고 http://xxx.com:882에 대한 액세스 요청이 실제로 nginx에 의해 처리되었는지 확인하세요. 이 가상 서버에 구성된 로그보다는 글로벌 로그를 확인하는 것이 좋습니다. 이는 구성 오류로 인해 다른 가상 서버에서 요청이 처리되는 문제를 제거하는 데 사용할 수 있습니다. http://xxx.com:882的请求确实已经被该nginx处理。建议查看全局的log,而不是针对此 virtual server 所配置的日志,这样用来排除由于配置错误,请求被其他 virtual server 处理的问题。
  2. 如果[1]得到确认,则如法炮制确认 http://10.110.39.2:10 是否收到请求。
  3. 如果[2]也得到了确认,那么这个时候,请对监听 10.110.39.2:10
  4. [1]이 확인되면 동일한 방법으로 http://10.110.39.2:10이 요청을 받았는지 확인하세요.
#🎜🎜#[2]도 확인되었다면 이때 10.110.39.2:10을 듣고 애플리케이션을 디버그하세요. #🎜🎜# #🎜🎜#
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿