Все -
Вот сценарий, на который я смотрю.У меня есть сайт, www.mycompany.com, это наше приложение.Это веб-программа, в которую пользователи входят, и она отлично работает.У нас есть маркетинговый сайт в 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 работает нормально, поэтому я не думаю, что это проблема.
В случае, если это имеет значение: - Я использую самозаверяющие сертификаты для этого тестирования.Я не получаю никаких ошибок, связанных с безопасностью, но упоминаю это на всякий случай.- Я использую Apache 2.4.6-80 на CentOS 7.5 (1804).- Эти машины НЕ открыты для интернета, когда я над ними работаю.У них (включая мой клиент) есть 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неправильно или что-то еще) в том, что существует «конфликт» между «/ about» ProxyPass / ProxyPassReverse и «about» в «about-us».Вот мое объяснение, почему я подозреваю, что проблема здесь:
- Когда я изменяю Постоянную ссылку страницы about-us на что-либо, что не начинается со строки about (например, us-about)'или' ab0ut-us '), я могу заставить страницу работать.
- Я также уверен, что не только эта страница ведет себя странно.Я подумал, что где-то за кулисами на странице может быть что-то, чего я не знаю о том, как вызвать проблему, поэтому я создал несколько совершенно новых страниц под названием «О тесте» (которые создали постоянную ссылку «о тесте»)и «Около 2» (постоянная ссылка «около-2»), и эти страницы также выдавали 404 ошибки.
Я предполагаю, что где-то мне нужно поместить какой-нибудь RewriteCond или RewriteRuleтак что «о» не обрабатывается дважды (или что-то еще происходит), но я не уверен.
Если требуется какая-либо дополнительная информация / разъяснения, пожалуйста, спросите в противном случае любое направление или предложения будутс благодарностью !!
Спасибо,
Чарльз
Редактировать -
Моя репутация слишком низкая, чтобы отвечать прямо на ваш комментарий,Орландо П., вот мой тебе ответ.
Вы задаете очень хороший вопрос, и я с удовольствием уточняю / расширяю.То, что в конечном итоге произойдет в будущем, - это то, что наш сервер www.mycompany.com будет находиться за балансировщиком нагрузки, работающим с несколькими серверами.Вместо того, чтобы запускать WordPress на том же компьютере, что и эти серверы (сохраняя необходимость поддерживать обратный отсчет файлов), я хотел разгрузить WordPress на отдельный сервер, поскольку ему не требуется почти столько вычислительной мощности, сколько будет на серверах приложений..
Другое ограничение, которое я навязал мне своей исполнительной командой, заключается в том, что они не хотят, чтобы наш маркетинговый сайт был на «about.mycompany.com», но они хотят разрешить использование «www.mycompany.com/about 'будет использоваться.Поэтому моя идея заключалась в том, чтобы настроить «about.mycompany.com» на отдельном сервере, а затем использовать перенаправление прокси на другой сервер.
У вас есть предложение / место, где вы можете указать мне, где я могу использовать другой метод вместо прокси, где я могу делать то, что я иду?Я изучаю директиву «Расположение» в Apache, чтобы посмотреть, смогу ли я использовать ее для достижения той же цели, но если у вас есть какие-либо предложения, выкиньте их там.Спасибо !!