最近帮一朋友搭建一discuz!论坛,因为他的服务器上其实还有一个官网,只注册了一个域名,想把discuz论坛也挂在这个域名下。而官网应用是使用 java 语言写的,因而想到使用到Apache2的反向代理功能,将域名的根目录转至官网,而子层目录/forum转至php解析的discuz。

步骤:

1.系统更新:

apt-getupdate

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

apt-getinstallmysql-servermysql-client

3.Apache2安装,配置:

apt-getinstallapache2libapache2-mod-auth-mysql

4.php5安装,配置:

apt-getinstallphp5php5-mcryptphp5-curlphp5-mysqlserviceapache2restart

5.上传源码文件: Apache2和php5安装完之后,默认的根目录是位于 /var/www 之下,所以,在该目录下新建 forum 目录,把discuz的upload目录下的所有文件上传至 /var/www/forum 之下.

配置Apache2的反向代理功能:

修改/etc/apache2/apache2.conf:

cd/etc/apache2/viapache2.conf<Directory/car/www/>OptionsIndexesFollowSymLinks#AllowOverrideNoneAllowOverrideall#注意这行Requireallgranted</Directory>

6.加载反向代理模块

a2enmodproxy_httpserviceapache2restart

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/cp000-default.confaaa-proxy.confaaa-forum.confviaaa-proxy.conf<VirtualHost*:80>ServerAdminwebmaster@localhostServerNamewww.xxx.comDocumentRoot/var/wwwProxyPreserveHostOnProxyPass/forumhttp://127.0.0.10/forumProxyPass/http://127.0.0.11:81/……</VirtualHost>viaaa-forum.conf<VirtualHost127.0.0.2:80>ServerAdminwebmaster@localhostDocumentRoot/var/www……</VirtualHost>a2ensiteaaa-proxyaaa-foruma2dissite000-defaultserviceapache2restart

OK!此时访问 http://www.xxx.com 以及 http://www.xxx.com/forum都应可以访问了。

参考链接:Tutorial: Apache 2.4 as reverse proxy