jhsea3do 回復于:2005-07-09 15:51:28 |
1. 配置Apache虛擬主機
--------------------- a. 注釋httpd.conf中的以下內容,刪除默認主機 [code:1:93ed16b4fc] #ServerAdmin #ServerName #DocumentRoot [/code:1:93ed16b4fc] b. 確保vhost的支持模塊被apache加載 [code:1:93ed16b4fc] LoadModule vhost_alias_module modules/mod_vhost_alias.so [/code:1:93ed16b4fc] c. 并添加如下內容,其中3個conf文件代表了3個虛擬主機lcl, dns, dyn [code:1:93ed16b4fc] # Use vHost NameVirtualHost *:80 NameVirtualHost *:443 <IfModule mod_vhost_alias.c> Include conf/sites/com.javaws.lcl.conf Include conf/sites/com.javaws.www.conf Include conf/sites/com.javaws.dyn.conf </IfModule> [/code:1:93ed16b4fc] d. 在conf目錄下建立sites目錄,創建 com.javaws.lcl.conf文件,并配置lcl主機的內容 [code:1:93ed16b4fc] # lcl.javaws.com # <VirtualHost *:80> ServerAdmin jhsea3do@lcl.javaws.com DocumentRoot "D:/www/com/javaws/lcl" ServerName lcl.javaws.com ServerAlias 127.0.0.1 localhost # 該虛擬主機別名 ErrorLog logs/sites/lcl.javaws.com-error_log # 注意建立在logs目錄下建立相關的sites目錄 CustomLog logs/sites/lcl.javaws.com-aclearcase/" target="_blank" >ccess_log common # <Directory "D:/www/com/javaws/lcl"> Options FollowSymLinks AllowOverride None Order allow,deny Deny from all </Directory> # </VirtualHost> [/code:1:93ed16b4fc] e. 根據上面的文件配置其他的主機內容,保存httpd.conf,重啟apache2,在3個虛擬主機上放置不同的文件,應該能在瀏覽器中使用對應的域名訪問到 |
jhsea3do 回復于:2005-07-09 15:51:58 |
2. 配置JK
--------- a. 確保mod_jk的支持模塊被apache加載 [code:1:e9e868dfa7] LoadModule jk_module modules/mod_jk.so [/code:1:e9e868dfa7] b. 配置httpd.conf使其加載workers的配置文件(該文件為全局配置文件,請勿放入虛擬機的配置文件中) [code:1:e9e868dfa7] # Use mod_jk <IfModule mod_jk.c> JkWorkersFile conf/jks/workers.properties </IfModule> [/code:1:e9e868dfa7] 以下為workers.properties文件的內容 [code:1:e9e868dfa7] # workers.properties.minimal # worker.list=localhost,jkstatus # 共有兩個worker可供使用 # worker.localhost1.type=ajp13 # worker localhost1 對應的 jk socket (private worker) worker.localhost1.host=localhost worker.localhost1.port=8009 # worker.localhost.type=lb # worker localhost 使用負載均衡模式 (public worker) worker.localhost.balance_workers=localhost1 # 僅使用 localhost1 作為 localhost 的負載均衡, # # 如果你有多個private worker,可以放在balance中 # worker.jkstatus.type=status # worker jkstatus 使用 status 模式 [/code:1:e9e868dfa7] c. 編輯com.javaws.lcl.conf,配置lcl主機,使其支持 jk * 該配置代碼應該和<Directory />配置平級 [code:1:e9e868dfa7] # <IfModule mod_jk.c> JkMountFile conf/jks/jk1.com.javaws.lcl.urimaps.properties # urimaps 配置文件 JkLogFile logs/sites/lcl.javaws.com-jk-info_log # jk的日志 JkLogLevel info # jk的日志紀錄等級 </IfModule> [/code:1:e9e868dfa7] 以下為jk1.com.javaws.lcl.urimaps.properties文件的內容 [code:1:e9e868dfa7] # jk1.com.javaws.lcl.urimaps.properties # /*.jsp=localhost # 所有uri為*.jsp結尾的http請求均轉交localhost worker處理 /*.jspa=localhost # 所有uri為*.jspa結尾的http請求均轉交localhost worker處理 /*.do=localhost # 所有uri為*.do結尾的http請求均轉交localhost worker處理 /servlets/*=localhost # 所有uri為/servlets/目錄下的http請求均轉交localhost worker處理 /admin/*=localhost # 所有uri為/admin/目錄下的http請求均轉交localhost worker處理 # !/admin/*.gif=localhost # /admin/ 目錄下的 gif, jpg 無需由jk處理 !/admin/*.jpg=localhost # ... !/servlets/*.gif=localhost !/servlets/*.jpg=localhost # /jkmanager=jkstatus # 所有uri為/jkmanager/目錄下的http請求均轉交jkstatus worker處理 [/code:1:e9e868dfa7] d. 啟動 tomcat , 確保 tomcat 加載了 ajp13 handle e. 保存以上配置,重啟apache2, 這樣可以訪問對應的java uri |
jhsea3do 回復于:2005-07-09 15:52:44 |
3. 配置SSL(如果不需要配置,可以略過)
------------------------------------ a. 制作密鑰和證書:ssl-javaws.com.crt、ssl-javaws.com.key, 確保mod_ssl的支持模塊被apache加載,win32版本的bin building不提供ssl支持(出于安全考慮),請用msvc60自行編譯 [code:1:0d98eee83a] LoadModule ssl_module modules/mod_ssl.so [/code:1:0d98eee83a] b. 為需要SSL支持的站點配置加密的主機,比如lcl主機,可以在該主機的配置文件下加入: * 該配置代碼應該和<VirtualHost />配置平級 [code:1:0d98eee83a] <VirtualHost *:443> ServerAdmin jhsea3do@lcl.javaws.com DocumentRoot "D:/www/com/javaws/lcl" ServerName lcl.javaws.com ServerAlias 127.0.0.1 localhost # 該虛擬主機別名 ErrorLog logs/sites/lcl.javaws.com-error_log # 注意建立在logs目錄下建立相關的sites目錄 CustomLog logs/sites/lcl.javaws.com-access_log common # <IfModule mod_ssl.c> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNUL SSLCertificateFile "conf/certs/ssl-javaws.com.crt" SSLCertificateKeyFile "conf/certs/ssl-javaws.com.key" <Files ~ "\.(cgi|shtml|phtml|php3?)$"> # 對于CGI文件設置環境變量 SSLOptions +StdEnvVars </Files> SetEnvIf User-Agent ".*MSIE.*" \ # 對于一些瀏覽器設置環境變量 nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl-request_log \ # 日志紀錄 "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </IfModule> # <Directory "D:/www/com/javaws/lcl"> Options FollowSymLinks AllowOverride None Order allow,deny Deny from all </Directory> # </VirtualHost> [/code:1:0d98eee83a] c. 配置原80端口的主機的所有請求均轉發到443端口上,此處需要打開mod_rewrite [code:1:0d98eee83a] LoadModule rewrite_module modules/mod_rewrite.so [/code:1:0d98eee83a] * 以下配置內容位于80端口虛擬主機的配置文件中,配置代碼應該和<Directory />配置平級 [code:1:0d98eee83a] <IfModule mod_ssl.c> RewriteCond %{REMOTE_HOST} lcl\.javaws\.com\.org$ RedirectMatch ^/(.*) https://lcl.javaws.com/$1 RewriteCond %{REMOTE_HOST} localhos\.org$ RedirectMatch ^/(.*) https://localhost/$1 RewriteCond %{REMOTE_HOST} 127\.0\.0\.1$ RedirectMatch ^/(.*) https://127.0.0.1/$1 </IfModule> [/code:1:0d98eee83a] d. 保存,使設置生效,開瀏覽器檢查實際結果 ========================================================= Fin |
fei 回復于:2005-07-21 13:19:26 |
好文--現在還有人說用jk2呢。 |
perryhg 回復于:2005-08-16 02:44:05 |
<VirtualHost *:443>這個有什么意義嗎?
https不支持virtualhost的,不是技術的原因,而是安全策略的原因。 |
jhsea3do 回復于:2005-08-16 10:40:54 |
按我的配置方法的確可以多個https站點并存
我的確是不知道這方面相關安全策略方面的知識,你能說一下或者介紹相關的文章么? |