LinuxForum.Fans
Тема

Apache один сайт из нескольких составляющих на разных портах

Автор: ufomen 8 сообщений 3825 просмотров
#180063

Может это сделать и легко, но как-то до этого не доводилось.

Что имеем:

Собственно основной сайт написан хитро на java не требует для работы апача, висит на порту 8090
и блог к нему на wordpress

Задача, склеить два этих сайта чтобы пользователю было незаметно что это два разных куска одного сайта.
Грубо говоря

abcd.com - часть сайта на java в кторой есть ссылки типа abcd.com/aboutus abcd.com/blahblahblah и т.д. (порт 8090)
abcd.com/blog - часть сайта на WP (тупо Wordpress под апачем на 80 порту)

Для конечного пользователя переход должен быть незаметным.

Рулить всем через Rewrite rulles? если да то как?

#180067

а если типо abcd.com:8090 ?

#180069
Kettler написал:
а если типо abcd.com:8090 ?

Не совсем Вас понял. Конечному пользователю все должно отдаваться без всяких заковырок, тоесть он набирает abcd.com попадает на апача, которой редиректит его по тихому на порт 8090 локалхоста где крутится приложение java.
Редиректит он себе редиректит, пока ВНЕЗАПНО! не приходит задача отдать адрес abcd.com/blog тут он говорит АГА! надо спрашивать уже Wordpress, но конечный пользователь никак не видит этих изменений в адресной строке, для него тупо открывается часть чайта abcd.com/blog с блогом соответственно.

#180102

В общем редирект сделать легко с помощью одного RewriteRule

[console]<VirtualHost *:80>
ServerName testnew.abcd.com
ErrorLog /var/log/apache2/testnew_log
CustomLog /var/log/apache2/testnew_log common

RewriteEngine on
RewriteLog "/var/log/apache2/rewritetst.log"
RewriteLogLevel 2

#REWRITE RULLE HERE
RewriteRule ^/blog$ http://blog.abcd.com
#END OF REWRITE RULE

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/


</VirtualHost>

<VirtualHost *:80>
ServerName blog.abcd.com
ServerAdmin webmaster@abcd.com
DocumentRoot /var/www/wordpress
ErrorLog /var/log/apache2/wp-error_log
CustomLog /var/log/apache2/wp-access_log common

RewriteEngine on
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 2

<Directory /var/www/wordpress>
Options FollowSymLinks
AllowOverride FileInfo
</Directory>
</VirtualHost>
[/console]


Но в таком виде адрес подменяется, если добавить Флаг [P]
RewriteRule ^/blog$ http://blog.abcd.com [P]
То он пытается загрузить страничку беря ссылки относительно testnew.abcd.com сохраняя адресную строку
И конечно не находит картинки и пр.пр.пр.

Может как-то нужно "Склеивать сйт" не через URL а через пути к директориям... Но пока не знаю как

#180107

Если делать так:

[console]<VirtualHost *:80>
ServerName testnew.abcd.com
DocumentRoot /var/www
ErrorLog /var/log/apache2/testnew_log
CustomLog /var/log/apache2/testnew_log common

RewriteEngine on
RewriteLog "/var/log/apache2/rewritetst.log"
RewriteLogLevel 2

#REWRITE RULLE HER

RewriteRule ^/blog$ /wordpress/index.php
#END OF REWRITE RULE

ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/


</VirtualHost>
[/console]

то опять месиво и неразбериха со ссылкаим и пр.

#180124

В настройках wordpress прописано abcd.com/blog или abcd.com?

#181351

Поставить фронтэндой нгинкс и не парится :) Заодно и нагрузка сгладится :)

Войдите или зарегистрируйтесь, чтобы ответить.