"be"경로에서 웹 응용 프로그램을 실행중인 Tomcat 6이 있습니다. Spring 보안은 로그인 프로세스에 사용됩니다. 로그인 URL은 /console/login
이며 로그인하면 /console/customer
으로 리디렉션됩니다. 나는 login
URL에 https를 사용하고 customer
URL에 http를 사용합니다. 스프링 구성 파일에는 서블릿 경로를 지정하지 않습니다. 모두 제대로 작동하고 /be/console/login
에 액세스 한 후 올바른 리디렉션()이 수신되었습니다.nginx 프록시 서블릿 경로 추가
이제 프록시를 갖고 싶습니다. 나는 을 https://<someip>:9443
으로 전달하고 http를 포트 80에서 9080으로 전달하도록 Nginx를 구성했습니다.
Nginx는 브라우저로의 잘못된 리디렉션을 반환하고 있습니다. 대신 은 /be/be/console/customer
을 반환합니다. 서블릿 경로가 URL에 두 번 추가됩니다.
두 번째 '제거'는 어떻게 제거 될 수 있습니까?
감사합니다.
의 Nginx의 설정 :
server {
listen 443 ssl;
server_name localhost;
ssl on;
ssl_certificate C:\jc\\nginx\\tc\selfsigned.cer;
ssl_certificate_key C:\jc\\nginx\\tc\private.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location/{
proxy_redirect off;
proxy_pass https://<some ip>:9443;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ /.+ {
proxy_redirect off;
proxy_pass https://<some ip>:9443;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
server {
listen 80;
server_name localhost;
access_log logs/access.log;
error_log logs/error.log;
location/{
proxy_redirect off;
#server_name_in_redirect off;
proxy_pass http://<some ip>:9080;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location ~ /.+ {
proxy_redirect off;
proxy_pass http://<some ip>:9080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
proxy_pass_request_headers 기본 및 (다른 PARAM의) 나머지으로 설정되어는 성능과 관련된 구성입니다. 따라서 문제는 훨씬 더 복잡합니다. – Dima