apacheLinux下源码安装

本文详细介绍Apache反向代理的配置流程,包括安装步骤、基本配置、反向代理设置及SSL配置,帮助读者掌握Apache作为高效反向代理服务器的配置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Apache反向代理配置介绍

一、下载并进行安装
1、从httpd.apache.org(apache官方主页)上下载最新版本
建议下载最新版本httpd-2.2.15.tar.gz安装文件。
2、下载后将安装压缩文件上传至服务器根目录下(或任意目录)
在文件所在的目录下执行如下命令:
tar -zxvf httpd-2.2.15.tar.gz
mv httpd-2.2.15 /usr/local/src
mkdir -p /usr/local/web/apache
cd /usr/local/src/httpd-2.2.15
3、进行apache安装配置
Step 1
在configure前手工修改源代码树下的src/include/httpd.h,查找256,会发现#define HARD_SERVER_LIMIT 256这行,把256改为你要增大的值如4000
Step 2
./configure --prefix=/usr/local/web/apache
–enable-proxy=shared
–enable-ssl=shared
–enable-mpm=worker
–enable-so

说明:

–prefix=<Install_Path> 指明编译后的二进制文件安装到<Install_Path>目录,用实际安装路径替换<Install_Path>,如–prefix=/usr/local/web/apache,如果省略此配置参数,默认安装到/usr/local/apache2目录。

–enable-proxy=shared 加载代理模块

# --with-mpm=
先择Apache多路处理模块,={beos|event|worker|prefork|mpmt_os2},prefork为Unix系统下默认处理模块,它将运行一个非线程型的、预派生的Web服务器,适合于没有线程安全库,需要避免线程兼容性问题的系统,它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。worker为支持混合的多线程多进程的多路处理模块,由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM,同时,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。如果你的系统是基于线程安全的,那么笔者建议使用worker替代prefork,它将使得你的系统得到实际的性能改善。

–enable-so 指明编译动态加载模块(DSO)支持到httpd二进制文件,此模块使得Apache的各功能模块可以与核心分开编译、运行时动态加载。有了DSO支持,升级和增加模块时只需编译相关的模块即可,不必重新编译整个系统。最新版本的Apache缺省编译此模块到httpd二进制文件,如果你在使用早期版本的apache并且需要DSO支持,可能要明确指出此选项。

4、编译安装
make
make install
二、反向代理配置
1、修改配置文件conf/httpd.conf
(1)将ServerName一行作如下修改:
修改ServerName pc74.hkgtdc1.com:80为apache服务器域名,注释去掉
(2)将ServerAdmin一行作如下修改:
修改ServerAdmin root@localhost
(3)将Include conf/extra/httpd-vhosts.conf注释去掉
(4)将Include conf/extra/httpd-default.conf注释去掉
(5)将Include conf/extra/httpd-languages.conf注释去掉
(6)找到如下信息,做修改:
<Directory “/usr/local/apache/htdocs”>
将AllowOverride None改为AllowOverride All

2、修改conf/extra/httpd-default.conf配置文件
将HostnameLookups Off改为HostnameLookups On
3、编辑conf/extra/httpd-vhosts.conf配置文件
#AddModule mod_proxy.c

把NameVirtualHost *:80改为
NameVirtualHost 192.168.0.177 //此IP地址为apache服务器的IP地址
<VirtualHost 192.168.0.177>
ServerName www.hkgt.com

<VirtualHost 192.168.0.177>
DocumentRoot “/usr/local/web/apache/htdocs/jboss”
ServerName jboss.org
ServerAlias www.jboss.org
ProxyPass / http://192.168.0.3:38080/
ProxyPassReverse / http://192.168.0.3:38080/
ErrorLog “logs/jboss.org-error_log”
CustomLog “logs/jboss.org-access_log” common

<VirtualHost 192.168.0.177>
DocumentRoot “/usr/local/web/apache/htdocs/tomcat”
ServerName tomcat.org
ServerAlias www.tomcat.org
ProxyPass / http://192.168.0.3:8090/
ProxyPassReverse / http://192.168.0.3:8090/
ErrorLog “logs/tomcat.org-error_log”
CustomLog “logs/tomcat.org-access_log” common

三、ssl反向代理配置
1、修改配置文件conf/httpd.conf
(1)将ServerName一行作如下修改:
修改ServerName pc74.hkgtdc1.com:80为apache服务器域名,注释去掉
(2)将ServerAdmin一行作如下修改:
修改ServerAdmin root@localhost
(3)将Include conf/extra/ httpd-ssl.conf注释去掉
(4)将Include conf/extra/httpd-default.conf注释去掉
(5)将Include conf/extra/httpd-languages.conf注释去掉
2、编辑conf/extra/ httpd-ssl.conf配置文件

DocumentRoot “/usr/local/web/apache/htdocs”
ServerName 192.168.0.12(改成你的Apache服务器的ip或域名)
ServerAdmin you@example.com
ErrorLog “/usr/local/web/apache/logs/error_log”
TransferLog “/usr/local/web/apache/logs/access_log”
SSLCertificateFile “/usr/local/web/apache/conf/auditAdmin.crt”
SSLCertificateKeyFile"/usr/local/web/apache/conf/auditAdmin.key"(auditAdmin.crt auditAdmin.key 是服务器的公钥和私钥证书,把它放在相应的目录下)

 SSLProxyEngine On

ProxyRequests Off
ProxyPass /tjhjgl/ http://192.168.0.112:18080/tjhjgl/
ProxyPassReverse /tjhjgl/ http://192.168.0.112:18080/tjhjgl/

然后重启apache:
cd /usr/lo cal/web/apache
bin/httpd –k stop
bin/httpd –k start
四、DEMO
1、编辑index.html文件
Index.html文件位于/local/web/apache/htdocs下,DEMO内容如下

HKGT HOME PAGE


HKGT homepage


Jboss application


Tomcat application


2、创建文件夹
mkdir /usr/local/web/apache/htdocs/jboss
mkdir /usr/local/web/apache/htdocs/tomcat

3、启动apache,并查看端口看服务是否正常启动
先检查系统中是否存在linux自带版本的apache服务器,
rpm –qa |grep httpd(查看是否有rpm安装包存在)
检查系统自带apache服务器服务是否启动
netstat –ano |grep 80
如果80端口存在处于监听状态
killall -9 httpd(终止apache相关进程)或 service httpd stop(停止服务)
卸载自带版本apache服务器服务
chkconfig --del httpd
rm –f /etc/rc.d/init.d/httpd 2>/dev/null
卸载linux自带版本apache服务器
rpm –e –nodeps httpd

bin/apachectl -k graceful(启动apache服务)
netstat -nap |grep 80(如果存在httpd查询结果表示apache服务器成功启动)
如果80端口被堵塞执行如下命令:killall -9 httpd
4、修改apache服务器端/etc/hosts文件
添加以下几行:
192.168.0.177 www.hkgt.com
192.168.0.177 www.tomcat.org
192.168.0.177 www.jboss.org
注:192.168.0.177为apache服务器的IP地址
5、修改客户端hosts文件
linux在/etc/hosts(windows在%systemroot%\system32\drivers\etc\hosts)下添加如下几行:
192.168.0.177 www.hkgt.com
192.168.0.177 www.tomcat.org
192.168.0.177 www.jboss.org
注:192.168.0.177为apache服务器的IP地址
6、 编辑默认apache首页
/usr/local/web/apache/htdocs/index.html(在httpd.conf配置文件中可更改或添加apache页面)
五、停止apache服务
/bin/apachectl –k graceful-stop 或 killall -9 httpd
六、查看apache服务器安装时间及版本
/bin/apachectl –v
七、查看apache服务器安装时间及版本

控制最大连接数的MaxClients ,因此可以尝试配置为:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 5000
MaxRequestsPerChild 100

注意,MaxClients默认最大为250,若要超过这个值就要显式设置ServerLimit,且ServerLimit要放在MaxClients之前,值要不小于MaxClients,不然重启httpd时会有提示。
重启httpd后,通过反复执行pgrep httpd|wc -l 来观察连接数,可以看到连接数在达到MaxClients的设值后不再增加,但此时访问网站也很流畅,那就不用贪心再设置更高的值了,不然以后如果网站访问突增不小心就会耗光服务器内存,可根据以后访问压力趋势及内存的占用变化再逐渐调整,直到找到一个最优的设置值。
(MaxRequestsPerChild不能设置为0,可能会因内存泄露导致服务器崩溃)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值