Ubuntu下使用Apache2反向代理php應用

最近幫一朋友搭建一discuz!論壇,因爲他的服務器上其實還有一個官網,只註冊了一個域名,想把discuz論壇也掛在這個域名下。而官網應用是使用 java 語言寫的,因而想到使用到Apache2的反向代理功能,將域名的根目錄轉至官網,而子層目錄/forum轉至php解析的discuz。

步驟:

1.系統更新:

apt-get update

2.MySql安裝,配置/usr/bin/mysql_secure_installation:

apt-get install mysql-server mysql-client

3.Apache2安裝,配置:

apt-get install apache2 libapache2-mod-auth-mysql

4.php5安裝,配置:

apt-get install php5 php5-mcrypt php5-curl php5-mysql
service apache2 restart

5.上傳源碼文件: Apache2和php5安裝完之後,默認的根目錄是位於 /var/www 之下,所以,在該目錄下新建 forum 目錄,把discuz的upload目錄下的所有文件上傳至 /var/www/forum 之下.

配置Apache2的反向代理功能:

修改/etc/apache2/apache2.conf:

cd /etc/apache2/
vi apache2.conf
<Directory /car/www/>
	Options Indexes FollowSymLinks
	#AllowOverride None
	AllowOverride all#注意這行
	Require all granted
</Directory>

6.加載反向代理模塊

a2enmod proxy_http
service apache2 restart

7.配置反向代理的應用:

再次介紹實際情況:

一個官網應用(java)應該配置在域名的根目錄下(http://www.xxx.com),

一個discuz應用應該配置在子層目錄下(http://www.xxx.com/forum),

目前官網應用已發佈在tomcat下(http://127.0.0.11:81),僅需要部署discuz。

cd /etc/apache2/sites-available/
cp 000-default.conf aaa-proxy.conf aaa-forum.conf
vi aaa-proxy.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName www.xxx.com
    DocumentRoot /var/www

    ProxyPreserveHost On
    ProxyPass /forum http://127.0.0.10/forum
    ProxyPass / http://127.0.0.11:81/

    ……

</VirtualHost>

vi aaa-forum.conf

<VirtualHost 127.0.0.2:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www

    ……

</VirtualHost>

a2ensite aaa-proxy aaa-forum
a2dissite 000-default
service apache2 restart

OK!此時訪問 http://www.xxx.com 以及 http://www.xxx.com/forum 都應可以訪問了。

參考鏈接:Tutorial: Apache 2.4 as reverse proxy



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章