이전 질문 중 일부와 관련이 있습니다.Apache에서 mod_rewrite를 사용하는 방법 -> mod_jk -> tomcat 설정?
이제는 설정이 좋아졌습니다.
아파치 httpd는 http 및 https 연결을 허용하는 포트 80에서 수신 대기합니다. 여러 AJP 포트에서 실행중인 여러 Tomcat 인스턴스.
Mod_Jk가 다른 URL 요청을 다른 tomcat 인스턴스로 보내고 있습니다.
www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/ -> tomcat:8100
이것은 httpd.conf (또는 포함 된 하위 파일)의 다음 구성으로 얻을 수 있습니다.
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
NameVirtualHost *:80
<VirtualHost *:80>
JkMount /demo* demoTomcat (workers.properties not shown)
JkMount /test* testTomcat
JkMount /* rootTomcat
</VirtualHost>
그리고이 모든 것이 훌륭합니다. 나는 또한 비슷한 VirtualHost 태그를 사용하여 https 연결을 위해 SSL 설정 및 실행을하고있다. 내가 지금하는 데 문제가 무엇
<VirtualHost _default_:443>
JkMount /demo* demoTomcat
JkMount /test* testTomcat
JkMount /* rootTomcat
... SSL Stuff follows ....
내 SSL CERT는 만 www.mydomain.com 및 NOT mydomain.com에 대한 것입니다.
다음 mod_rewrite 호출을 사용하는 것이 좋습니다.
Options +FollowSymlinks
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [PT,L]
httpd.conf 파일의 mod_jk 규칙 전후에 이들을 배치했습니다. Apache는 처음에는 RewriteEngine이 잘못된 명령이라고 불평했지만, LoadModule 명령을 처음 기억했을 때 사라졌습니다. 이제 Apache가 다시 시작되고 서버가 요청을 받아들이고 모든 것이 작동하는 방식으로 작동하지만 ... thats 그냥,이 mod_rewrite 명령은 효과가없는 것처럼 보입니까?
브라우저에 http://mydomain.com
을 입력하면 웹 사이트를 정상적으로 볼 수 있습니다. URL이 http://www.mydomain.com
으로 변경된 것으로 보이지 않으며 보안 영역에 액세스하기 시작하면 mydomain.com
이 보안되어 있지 않으며 www.mydomain.com
이라는 다른 웹 사이트에서 인증서를 제공하고 있습니다 (왜 이것이 전혀 문제가 아니며 ' 그것의 동일한 위치를 깨닫기 위하여 다만 몇몇 논리를 사용하지 말라, 나는 모른다!
mod_rewrite 규칙을 잘못된 위치에 배치합니까? 나는 그것이 작동해야한다고 읽었고, 다시 쓰기는 URL을 www로 바꿔야한다. 그런 다음 mod_jk 파일을 통해 더 이상 아무것도 전달하지 않습니까?
VirtualHost 태그 안에 있습니까? –
예 VirtualHost 태그 안에 있습니다. – anubhava
@Nick Foote : 다시 작성한 규칙이 효과가 있습니까? – anubhava