您的位置 首页 观点

Linux防火墙上的Apache反向署理

本文所使用的测试环境是Redhat Linux 7.2、Apache 1.3.24,公司域名假设是company.com。

  一、测验环境与网络结构

本文所运用的测验环境是Redhat Linux 7.2、Apache 1.3.24,公司域名假设是company.com。公司的典型网络结构如附图所示。

  Linux防火墙上的Apache反向署理

留意: 附图中的防火墙上装置了2块网卡,其间e0端口的外部公共地址为1.2.3.4,e1端口对应内部保存地址为192.168.2.1。局域网内部有3台 Web服务器A、B和C,它们对应的域名分别为weba.company.com、webb.company.com和 webc.company.com,均运用内部保存地址。

二、操作过程

如附图所示,此公司经过专线连入互联网,装置了防火墙,局域网内部有3台Web服务器,均只要内部保存地址,可是期望他们能够供给对外的Web服务。

  1.设置DNS

在防火墙(一起也是公司的DNS服务器)上设置内部3台Web服务器的DNS,IP地址均为1.2.3.4。这样,在Internet上解析 weba.company.com、webb.company.com 和webc.company.com时,均指向同一IP地址即防火墙的外部接口地址1.2.3.4。

  2.下载Apache

从Apache网站(http://www.apache.org)下载现在最新的版别apache 1.3.24到/root目录,下载地址为http://www.apache.org/dist/httpd/apache_1.3.24.tar.gz。

  3. 更改源代码使最大答应的恳求衔接数超越256

因为Apache默许答应的最多衔接数为256,而在一个繁忙的网站上这一衔接数量或许不能满足需求,特别是本文介绍的经过防火墙上的 Apache反向署理答应外部用户拜访多个内部Web服务器的状况,能够选用更改src/include/httpd.h文件的办法,具体过程如下。

#cd/root 切换目录到/root下

#tar xvfz apache_1.3.24.tar.gz 解开apache源文件到/root下  #cd apache_1.3.24 进入apache_1.3.24目录

#vi src/include/httpd.h 用vi修正httpd.h文件

在输入“vi src/include/httpd.h”指令后,持续输入“/256”并按“回车”键查找数字256,将其改为1024后保存并退出即可。

  留意事项:

①要支撑最多为1024个客户的一起恳求,不只需求更改上面说到的源文件,在编译装置后还需求设置/usr/local/apache/conf/httpd.conf文件,将其间的“MaxClients”一行后边的参数更改为“1024”。

②假如您只是为了进行测验,或许不会有很多人运用,能够不修正httpd.h文件。

  4. 编译Apache

编译代码如代码1所示。

代码1

#cd apache_1.3.24

#./configure –prefix=/usr/local/apache

–enable-module=most

–enable-shared=max

–enable-module=proxy

–enable-shared=proxy

–enable-module=rewrite

–enable-shared=rewrite 设置装置默许目录

编译大多数模块

设置模块为DSO(动态同享目标)形式

发动署理模块

装置署理模块为DSO形式

发动重写功用模块

装置重写功用模块为DSO形式
留意: 在编译Apache的时分,有必要编译大多数模块,并将它们设置为DSO形式,一起发动proxy和rewrite模块,一起也将其设置为DSO形式。

#make

#make install

将装置一切Apache所需文件到/usr/local/apache目录下。

  5.在httpd.conf文件中设置依据域名的虚拟主机

在/usr/local/apache目录找到httpd.conf文件,并将下面的内容添加至此文件后。

NameVirtualHost 1.2.3.4:80

VirtualHost 1.2.3.4:80 >

ServerAdmin root@company.com

DocumentRoot /usr/local/apache/htdocs

ServerName default.company.com

ErrorLog /usr/local/apache_http/logs/error_log

CustomLog /usr/local/apache_http/logs/access_log combined

UseCanonicalName Off

ProxyRequests Off

RewriteEngine on

RewriteCond %{HTTP_HOST}.*.company.com$

RewriteRule ^/(.*)$ http://%{HTTP_HOST}/$1 [P,L]

/VirtualHost >

  留意事项:

①上面设置了依据域名的反向署理虚拟主机,这样当您从外部拜访IP地址为1.2.3.4的主机,且URL地址后边部分的域名为“company.com”,Apache就能够把用户的恳求转发到局域网内部的Web服务器上,并重写呼应数据包去掉署理协议部分。

②“ServerName”一行能够恣意指定。

③“ProxyRequest Off”一行用来制止Apache在IP地址为1.2.3.4的主机和端口80上进行署理服务,在这里Apache作为一个通明的署理服务器来运用。

④“RewriteEngine on”一行用来发动Apache修正呼应数据包的功用,不然下面的“RewriteCond”和“RewriteRule”将不起作用。  6.添加记载进入/etc/hosts文件

在上面的虚拟主机重写规矩中,重写后的URL与您所恳求的URL是相同的,咱们的想象是将下面3个域名放到防火墙的/etc/hosts文件中,这样Apache将从内部3台Web服务器取得内容,并回来给外部用户,域名对应记载如下。

192.168.2.2 weba.company.com

192.168.2.3 webb.company.com

192.168.2.4 webc.company.com

 三、总结

这样,当外部用户拜访http://weba.company.com时,恳求被送到防火墙的Apache上,而防火墙上的Apache反向署理将依据/etc/hosts文件中界说的记载直接从IP地址为192.168.2.2的Web服务器获取内容并回来给外部用户,然后完结内部Web服务器weba.company.com对外供给拜访的功用。

在对Apache装备结束后,假如还需求添加更多的内部Web服务器来供给外部拜访服务,只需设置其DNS服务器的IP地址为1.2.3.4,并在/etc/hosts文件中添加相应记载即可。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/192404.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部