apache本身对虚拟主机支持较好。
resin对虚拟主机支持也较好。
ssl本身也支持基于虚拟主机的配置。
但如果将三者结合起来,困难或者问题要比想象中的多。
比如要实现 https://bizsft.com/a.jsp 寄宿在其他主机服务上,要做的改动分别是:
1. 在 apache的 vhost地方配置, conf/extra/httpd-vhosts.conf 里
<VirtualHost *:80>
ServerAdmin wadelau@ufqi.com
DocumentRoot “/www/bizsft”
ServerName bizsft.com
ServerAlias www.bizsft.com
</VirtualHost>
这样完成在Apache层面的vhost支持。
apache服务器需重启才能够生效,在restart之前最好使用
./apachectl configtest
来验证配置的正确性。
2. 在 resin的vhost里做相应的配置,以便于在bizsft.com下的jsp文件能够转交给resin做相应的处理,在resin的 conf/resin.xml 里,resin <cluster>标签下,配置
<host id=”bizsft.com” root-directory=”.”>
<web-app id=”/” root-directory=”/www/bizsft”/>
</host>
这样就完成了,bizsft.com/a.html 由apache解析,bizsft.com/a.jsp 又resin来负责解析。
resin.xml 被修改保存后,它的watchdog会侦测到文件尺寸的变动,进而触发resin本身重启以使得其生效。
3. 继续来配置基于bizsft.com的安全链接ssl,在 apache相应的ssl模块里,conf/extra/httpd-ssl.conf 里,在原来的基础上增配
NameVirtualHost *:443 # 这句如果已经有了不需再写
<VirtualHost _default_:443>
DocumentRoot “/www/bizsft”
ServerName bizsft.com:443
ServerAdmin wadelau@ufqi.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile “/www/conf/server-bizsft.crt”
SSLCertificateKeyFile “/www/conf/server-bizsft.key”
</VirtualHost>
同样需要重启apache才能够使得改动生效。这样就完成了对
https://bizsft.com/a.jsp
访问的支持,如果配上正确的ssl 证书,则在地址栏内会有绿色锁标记。
也可以自行生成一个ssl证书用于测试,主要步骤如下:
创建私钥,shell> openssl genrsa -out server.key 1024
生成公钥,shell> openssl req -new -key server.key -out server.csr
生成证书,shell> openssl x509 -days 3650 -req -in server.csr -signkey server.key -out server.crt
然后按上述配置到 conf/extra/httpd-ssl.conf 文件中去,详细参考:
http://blog.51yip.com/apachenginx/958.html
4. 综上,在虚拟主机中支持 .jsp 不常见,也即通常说的java虚拟主机不多,在虚拟主机中配置对ssl的支持的做法更是少有,但通过上述配置,可以完成这些任务。
所需要的是在三个地方都需要做相应的配置。











该文已经被转贴到
http://wadelau.blog.163.com/blog/static/11343542720137115253334/