全部-
这是我正在查看的方案。我有一个网站www.mycompany.com,这是我们的应用程序。这是一个基于Web的程序,用户可以登录并正常运行。我们在Wordpress中有一个营销网站,网址为about.mycompany.com。该网站本身可以正常运行。
我已被管理层指示要拥有Wordpress网站,而不是作为一个单独的网站成为我们当前网站的“子目录”。因此,我正在努力使服务器协同工作,以便您访问www.mycompany,com / about时,它将显示我们的Wordpress网站。
以下是每个服务器的配置信息:
www.mycompany.com.conf 文件:
<VirtualHost *:80>
Redirect / https://www.mycompany.com
ServerName www.mycompany.com
DirectoryIndex index.php index.html
DocumentRoot /var/sites/prod1
ServerAdmin myaddress@mycompany.com
ServerAlias mycompany.com
<Directory />
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName www.mycompany.com
DirectoryIndex index.php index.html
DocumentRoot /var/sites/prod1
ServerAdmin myaddress@mycompany.com
ServerAlias mycompany.com
<Directory />
AllowOverride all
Require all granted
</Directory>
ProxyPreserveHost On
ProxyRequests Off
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyTimeout 2400
ProxyBadHeader Ignore
ProxyPass /about https://about.mycompany.com
ProxyPassReverse /about https://about.mycompany.com
SSLEngine on
SSLCertificateKeyFile /var/keys/www.mycompany.com.key
SSLCertificateFile /var/keys/www.mycompany.com.crt
</VirtualHost>
about.mycompany.com.conf 文件:
<VirtualHost *:80>
Redirect / https://about.mycompany.com/
ServerName about.mycompany.com
DirectoryIndex index.php index.html
DocumentRoot /var/sites/about
ServerAdmin myaddress@mycompany.com
<Directory />
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName about.mycompany.com
DirectoryIndex index.php index.html
DocumentRoot /var/sites/about
ServerAdmin myaddress@mycompany.com
<Directory />
AllowOverride all
Require all granted
</Directory>
ProxyPreserveHost On
ProxyRequests Off
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyTimeout 2400
ProxyBadHeader Ignore
ProxyPass /about https://about.mycompany.com
ProxyPassReverse /about https://about.mycompany.com
SSLEngine on
SSLCertificateKeyFile /var/keys/about.mycompany.com.key
SSLCertificateFile /var/keys/about.mycompany.com.crt
</VirtualHost>
我还创建了一个'cors-access.conf'文件,以允许域之间进行通话:
Header set Access-Control-Allow-Origin "*"
MySQL在第二台计算机上,该计算机的端口3306已打开,并且可以正常访问。 WordPress本身似乎运行良好,所以我认为这不是问题。
重要的是: -我正在使用自签名证书进行此测试。我没有遇到任何与安全性有关的错误,但为以防万一。 -我在CentOS 7.5(1804)上使用Apache 2.4.6-80。 -当我在使用这些机器时,它们不对Internet开放。他们(包括我的客户端)已在各自的主机文件中输入了IP地址,以便进行解析,以使测试不受控制。
我以以下方式配置了Wordpress:
WordPress地址(URL)-https://about.mycompany.com
网站地址(URL)-https://www.mycompany.com/about
为“帖子名称”设置了永久链接
除以下内容外,几乎所有页面都可以正常访问:
https://www.mycompany.com/about/about-us/
这给了我一个404错误。
我已经查看了Wordpress,页面在那里,所以并不是那么简单。我也已重置并重新打开了我的永久链接,以解决该问题,并且两者之间也没有区别。
我确实怀疑(而且我不确定我是否在执行Proxy / ReverseProxy错误或其他事情),是ProxyPass / ProxyPassReverse的“ / about”和“ “关于我们”中的“关于”。这是为什么我怀疑问题在这里的原因:
我猜我需要在某种地方放一些'RewriteCond'或'RewriteRule',这样'about'不会被处理两次(或正在发生的任何事情),但是我不确定。
如果需要任何其他信息/说明,请询问,否则任何指示或建议将不胜感激!
谢谢你,
查尔斯
编辑-
我的声誉仍然很低,无法直接回复您的评论,Orlando P.,所以这是我的回复。
您提出了一个很好的问题,我很高兴澄清/扩大。最终将要发生的事情是,我们的www.mycompany.com服务器将位于运行多个服务器的负载平衡器之后。我不想将WordPress与那些服务器在同一台机器上运行(保持减少文件计数的需要),我想将WordPress卸载到单独的服务器上,因为它几乎不需要应用服务器所需要的处理能力。
我的执行团队强加给我的另一个限制是,他们不希望我们的营销网站位于“ about.mycompany.com”上,但是他们愿意允许使用“ www。”。 mycompany.com/about”。所以我的想法是在单独的服务器上设置“ about.mycompany.com”,然后使用代理重定向到另一台服务器。
您是否有建议/地方,可以指出我可以使用其他方法的位置,而不是代理我可以执行的操作?我正在研究Apache中的“位置”指令,以查看是否可以使用它来实现相同的目标,但是如果您有任何建议,请将其扔在那里。谢谢!