linux安装apache并配置根据不同的域名转发到不同的端口

 
 

 
 

linux安装apache并配置根据不同的域名转发到不同的端口

2015-05-18 23:37 

1、下载httpd-2.4.12.tar.gz可以去apache官网下载

2、解压tar -zxvf httpd-2.4.12.tar.gz

3./configure –prefix=/usr/local/apache –enable -so

4make && make install

5、安装的时候如果出现一下错误,error:apr not fount. Please read the documentation,此时需要下载其他的包

6、下载需要的包

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz 

wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz 

wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

7、解决apr not found问题

tar -zxvf apr-1.4.5.tar.gz

cd apr-1.4.5

./configure –prefix=/usr/local/apr

make && make install

8、解决apr-util not found问题

tar -zxvf apr-util-1.3.12.tar.gz

cd apr-util-1.3.12

./configure –with-apr=/usr/local/apr

make && make install

9、解决pcre问题

如果没有unzip命令,安装(yum install -y unzip zip

unzip -o pcre-8.10.zip

cd pcre-8.10

./configure –prefix=/usr/local/pcre

make && make install

如果此时出现如下错误时

make[1]:***[pcrecpp.lo]错误1

make[1]:Leaving directory /data/soft/nginx/pcre-8.30

make:***[all]错误2

yum -y install gcc-c++

10、重新编译安装

./configure

make && make install

11、开始安装apache

编译apache

./configure

编译的时候,可能会出现上面安装的包没有找到,有可能是因为大小写或者自定义的路径默认找不到,此时编译带上上面安装包的路径即可,我这里只有apr-utilpcre

找不到,所以我就带了两个,如果apr找不到,这也要把apr的路径带上(包默认安装的路径在/usr/local/下)

./configure –with-apr-util=/usr/local/apr-util/\–with-pcre=/usr/local/pcre/

make && make install

12、启动apache

cd /usr/local/apache2/bin/

./apachectl start

当出现

AH00558: httpd: Could not reliably determine the server’sfully qualified domain name, using localhost.localdomain. Set the ‘ServerName’directive globally to suppress this message


Starting httpd: httpd: apr_sockaddr_info_get() failed forMYHOST

先将apache服务停止,在/usr/local/apache2/bin/ ./apachectl stop

然后切换到配置文件目录

cd ../conf

httpd.conf备份一下(防止写错造成不可恢复的错误)

cp httpd.conf /usr/local/apache2/conf/httpCopy.conf

备份完后就可以编辑该配置文件了(如果你觉得你不会搞错什么的,可以不备份)

vi httpd.conf

找到ServerRoot “/usr/local/apache2”

在下面添加

ServerName localhost:80(不修改也是可以的,只是启动的时候会出现以上的警告,看着烦,实际不会有啥影响)

cd ../bin

启动apache

./apachectl start

访问页面

http://服务器ip地址/

当出现下面的界面,则标识apache服务器安装成功

 

13、下面配置转发(即同一个服务器ip地址,多个不同的域名都解析到了该ip上,然后该服务器上同时开着多个tomcat,运行着不同的项目,各个项目的访问端口不同,现在配置apache根据不同的域名转发到不同的端口,对用户是透明的)

修改配置文件httpd.conf

vi httpd.conf

找到配置文件下面那4行,将前面的#去掉

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
LoadModule proxy_http_modulemodules/mod_proxy_http.so
LoadModule proxy_ftp_modulemodules/mod_proxy_ftp.so

去掉4#后,下面就可以配置端口转发的

在配置文件的最下方添加(以下是例子,大家可以根据自己的情况进行配置,下面是我个人的一种配置,还有其他的配置方法,此处就省略了,以后有空再做其他的介绍)

<VirtualHost *:80>

    ServerName  你的域名a

    ServerAlias 你的域名a

    ProxyPreserveHost On

    ProxyRequests Off

    ProxyPass / http://你的服务器ip:8001/

    ProxyPassReverse / http://你的服务器ip:8001/

</VirtualHost>

<VirtualHost *:80>

    ServerName  你的域名b

    ServerAlias 你的域名b

    ProxyPreserveHost On

    ProxyRequests Off

    ProxyPass / http://你的服务器ip:8002/

    ProxyPassReverse / http://你的服务器ip:8002/

</VirtualHost>

此处的配置意思是,该服务器接收到http:a:80的请求后,会转发到http://ip:8001端口上面去,即做了转发,因为多个域名都解析到该服务器上,而且都是80端口,即从ip上来说,大家的请求都一样,所以此处可以根据域名的不同来跳转到不同端口的项目上,比如网站1跳转到端口为8001tomcat,网站2跳转到端口为8002tomcat(本人服务器容器选择的是tomcat

测试 http://你的域名/http://你的域名:8001/的访问地址结果都一样,前者通过apache上面的过滤,转发到了8001端口去了,后者直接到tomcat访问去了,因为上面的配置只针对80端口转发,大家可以根据自己的情况来做出不同的配置

 

至此apache的安装以及端口的配置就差不多这样了

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注