我的部分站点需要运行HTTPS,我正在为该部分创建子域。我让apache 2和Tomcat 7运行在具有相同IP的同一服务器上,当然,Apache在端口80上,而Tomcat在端口8080上。现在,我正在为需要运行tomcat的请求进行域转发。例如,mathtoolhosting.com/mathApp可以转发到mathtoolhosting.com:8080/mathApp。
我希望Tomcat处理该子域的https请求。我认为这种转发技术在这种情况下是行不通的。如何设置它,以便Tomcat在apache处理端口80时接收端口443上的请求。
更具体而言:
http://proctinator.com ==>请求转到Apache web服务器。
https://private.proctinator.com ==>请求转到Apache web服务器。
发布于 2012-03-21 16:30:41
我希望Tomcat处理该子域的https请求。我认为这种转发技术在这种情况下是行不通的。如何设置它,以便Tomcat在apache处理端口80时接收端口443上的请求。
实际上,您可以配置虚拟主机来转发所有类型的请求,包括443。只需为同一台服务器安装两个虚拟主机,但通过端口转发。端口80可以通过ajp或http代理转到您的ajp主机和443到您的tomcate。示例:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName proctinator.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
ServerName private.proctinator.com
ProxyRequests off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>您将不得不稍微修改配置设置,但这将提供您所描述的设置。
https://serverfault.com/questions/371905
复制相似问题