我网站的一部分需要通过 HTTPS 运行,我正在为该部分创建一个子域。我有 apache httpd 2 和 Tomcat 7 在具有相同 IP 的同一台服务器上运行,当然 Apache 在端口 80 上,而 Tomcat 在端口 8080 上运行。现在我正在为需要从 tomcat 运行的请求进行域转发。例如,mathteamhosting.com/mathApp 可以转发到 mathteamhosting.com:8080/mathApp。
我想让 Tomcat 处理该子域的 https 请求。我认为这种转发技术在这种情况下不起作用。如何设置以便 Tomcat 在端口 443 上接收请求,而 apache 处理端口 80。
更具体地说:
http : //proctinator.com ==> 请求转到 Apache Web 服务器
https://private.proctinator.com ==> 请求转到 Apache Web 服务器
我想让 Tomcat 处理该子域的 https 请求。我认为这种转发技术在这种情况下不起作用。如何设置以便 Tomcat 在端口 443 上接收请求,而 apache 处理端口 80。
实际上,您可以配置虚拟主机来转发所有类型的请求,包括 443。只需为同一台服务器设置两个虚拟主机,但按端口转发。端口 80 可以通过 ajp 或 http 代理转到您的虚拟主机和 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>
Run Code Online (Sandbox Code Playgroud)
您必须稍微修改配置设置,但这应该提供您描述的设置。
归档时间: |
|
查看次数: |
10057 次 |
最近记录: |