1. 程式人生 > >apache反向代理

apache反向代理

一般apache用來做web服務比較多,很少聽說可以做反向代理,最近聽到,抱著嘗試的心態就試了試,配置不是很複雜

環境:

系統Centos7  

[[email protected] extra]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Ip地址

角色

192.168.253.137

反向代理伺服器

192.168.253.132

後端webA

192.168.253.142

後端webB


0.三臺機器都關閉防火牆和selinux

systemctl  stop firewalld
setenforce 0

1.先把WebA和WebB裝上web服務

WebA和WebB:

yum install httpd

WebA:

echo "i am A" > /var/www/html/index.html

WebB:

echo "i am B" > /var/www/html/index.html

WebA和WebB:

systemctl  start httpd

瀏覽器測試一下是否成功

WebA成功


WebB成功

2.在反向代理伺服器192.168.253.137  編譯安裝apache2.4版本

cd /usr/local/src
mkdir apache
cd apache/
wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.33.tar.gz   ##這個http2.4的下載地址  根據情況而定
wget http://mirrors.hust.edu.cn/apache//apr/apr-1.6.3.tar.gz
wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar -zxf apr-1.6.3.tar.gz 
tar -zxf apr-util-1.6.1.tar.gz 
tar -zxf httpd-2.4.33.tar.gz 
mv apr-1.6.3 httpd-2.4.33/srclib/apr
mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util
cd httpd-2.4.33
 yum install gcc gcc-devel pcre pcre-devel expat expat-devel openssl openssl-devel zlib-devel   -y
./configure  --prefix=/usr/local/httpd --enable-so --enable-modules="all" --with-included-apr
make && make install 
PATH=PATH="/usr/local/httpd/bin/:$PATH"

然後測試一下


檢視一下目錄結構

[[email protected] httpd]# tree -L 1
.
├── bin              #apachectl相關命令
├── build             
├── cgi-bin
├── conf             #apache的配置檔案目錄
├── error
├── htdocs
├── icons
├── include
├── lib
├── logs           #apache預設存放日誌的目錄
├── man
├── manual
└── modules

主要的幾個配置檔案

conf
├── extra
│   ├── httpd-autoindex.conf
│   ├── httpd-dav.conf
│   ├── httpd-default.conf
│   ├── httpd-info.conf
│   ├── httpd-languages.conf
│   ├── httpd-manual.conf
│   ├── httpd-mpm.conf
│   ├── httpd-multilang-errordoc.conf
│   ├── httpd-ssl.conf
│   ├── httpd-userdir.conf
│   ├── httpd-vhosts.conf
│   └── proxy-html.conf
├── httpd.conf
├── magic
├── mime.types
└── original

3.編寫proxy配置檔案,吧配置檔案寫在/usr/local/httpd/conf/extra/httpd-proxy.conf

[[email protected] extra]# cat httpd-proxy.conf 
#proxy  
LoadModule proxy_module modules/mod_proxy.so            
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
ProxyRequests Off
<Proxy "balancer://mycluster">    #後端web服務的成員組
    BalancerMember "http://192.168.253.142:80"
    BalancerMember "http://192.168.253.132:80"
</Proxy>
ProxyPass        "/proxy_demo" "balancer://mycluster"
ProxyPassReverse "/proxy_demo" "balancer://mycluster"
<Location /admin>                 #配置反向代理的web管理介面
    SetHandler balancer-manager
    Order Deny,Allow
    Allow from all
</Location>

修改主配置檔案

echo "Include conf/extra/httpd-proxy.conf" >> /usr/local/httpd/conf/httpd.conf 
echo "ServerName 127.0.0.1:80" >> /usr/local/httpd/conf/httpd.conf

啟動

apachectl restart 

檢視埠是否監聽


表示成功 

4.測試反向代理功能



192.168.253.137是反向代理伺服器,可以連線到WebA和WebB表示成功

5.測試反向代理的web管理介面


如果要把反向代理配置到虛擬主機配置檔案可以改為

#proxy demo
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
ProxyRequests Off    #是否開啟apache正向代理功能,如果設定了ProxyPass必須將ProxyRequests設定為Off
<Proxy "balancer://mycluster">
    BalancerMember "http://192.168.253.142:80"
    BalancerMember "http://192.168.253.132:80"
</Proxy>

<VirtualHost 192.168.253.137:80>
    ServerAdmin [email protected]
    DocumentRoot "/opt"
    ErrorLog "logs/192.168.253.137_error_log"
    CustomLog "logs/192.168.253.137_access_log" common
    ProxyPass        "/" "balancer://mycluster"   
    ProxyPassReverse "/" "balancer://mycluster"
</VirtualHost>

相關推薦

apache反向代理服務器

系統 tar 訪問 ssr 反向 linux squid 沒有 service 1 正向代理: 客戶端無法直接訪問外部的web,需要在客戶端所在的網絡內架設一臺代理服務器,客戶端通過代理服務器訪問外部的web(需要在客戶端的瀏覽器中設置代理服務器) 適用於: ①局域

Nginx/Apache反向代理

gin oca lin 應用程序 分享 ogr con caption rri 初衷:一臺服務器上只有一個80端口,如果要部署多套網站,難免會有www.veblen.com:80808080或者www.veblen.com/test/child/pro.html這樣的尷

使用apache反向代理tomacat

客戶端瀏覽器 node type 客戶 易用 ble error_log 用戶 -1 起源 在大部分的生產環境中,基本上使用的都是java程序,從而促進了各種應用程序中間件的產生,在這裏大概有幾種,tomcat作為最著名的開源servlet容器,jboss也

Apache反向代理Tomcat(mod_proxy方式)

eve mpm conf host 報文 支持 反向代理 jdk1 catalina Apache反向代理Tomcat(mod_proxy方式)環境使用兩臺服務器,apache服務器IP為192.168.8.18,tomcat服務器地址為192.168.8.16Tomcat

Linux環境下Apache反向代理金蝶中介軟體Apusic叢集

作業系統:RedHat Enterprise Linux 5.6 文件參考:《金蝶Apusic應用伺服器 幫助手冊| IX. Apusic Http Server使用指南》   一、金蝶中介軟體配置 金蝶中介軟體需要修改的是叢集環境中所有節點域中的apusic.conf和vm.options

利用Apache反向代理解決前後端造成的跨域問題

Apache可以被配置為正向(forward)和反向(reverse)代理。 正向代理是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端

apache反向代理配置(反向代理連線的是IIS)

apache伺服器的代理功能分為正向代理及反向代理: 1.正向代理:也就是我們通常所說的代理伺服器,只用於代理內部網路對Internet的連線請求。客戶機必須指定代理伺服器,並將本來要直接傳送到Web伺服器上的http請求傳送到代理伺服器中。 2.反向代理:指以代理伺服器來

Apache 反向代理與修改網頁內容

apahce與nginx經常被用於作為Web伺服器,其實apache與nginx有非常多的拓展功能,可以通過訪問官方網站了解相關內容。之前使用過apache實現反向代理的功能,於是把它記錄下來,方便以後做其他的配置。反向代理的時候,也使用了兩種方式實現了修改網頁內容的功能,

apache 反向代理和tsl支援tsl1.2以下版本

最近公司的微信小程式專案要求用java寫,而我們的ssl服務證書是繫結在apache 上需要做反向代理 1、開啟Apache的配置檔案httpd.conf,找到下面的內容,將註釋去掉,以啟動代理模組 

Apache反向代理負載均衡和會話保持配置

Apache從1.2版本起,代理模組就已經加入到Apache原始碼中,可惜當時的代理模組有很多問題,比如:與較新的http規範不相容等等,從Apache2.0起mod_proxy模組不但被重新改寫,還分

解決前端跨域問題方法之一配置Apache反向代理拿介面資料

反向代理的原理圖解 由於跨域阻止了我們資料請求,所以轉變思路,我們不傳送跨域請求了,直接請求當前域名中的內容 伺服器在接收到資料請求之後將資料請求轉發給介面伺服器 介面伺服器先將資料返回給web伺服器 web伺服器再將介面伺服器返回的資料轉發給瀏覽器 從stud

apache 反向代理:apache和iis共用80埠

之前一個朋友介紹了一個小網站的製作的活,價格挺便宜,我就圖省事用asp做了 要給客戶上線了才發現:客戶是自己買的阿里雲伺服器,已經有php的站了. 這下操蛋了,之前沒這麼搞過 網上找半天iis和apache共用80埠的資料,各種試,總算搞定了: 首先呢,在httpd.co

記錄下Apache 反向代理

事出原因:伺服器上已經跑了一個php專案,甲方又要跑一個java專案(微信授權)解決方案:apache 反向代理步驟:開啟httpd.conf檔案的LoadModule proxy_module mod

apache反向代理

一般apache用來做web服務比較多,很少聽說可以做反向代理,最近聽到,抱著嘗試的心態就試了試,配置不是很複雜環境:系統Centos7  [[email protected] extra]# uname -a Linux localhost.localdomain

apache反向代理tomcat時x-forwarded-for為null的問題

apache 在用ProxyPass時會自動在header中設定X-Forwarded-For X-Forwarded-Host和X-Forwarded-Server (http://httpd.apache.org/docs/2.2/mod/mod_proxy.html)

apache反向代理問題

pache反向代理出現的問題:一、問題描述:使用者訪問時經常出現“無法顯示網頁”類似的問題通過跟蹤logs下的error.log,出現大量一下錯誤資訊 [Mon Mar 12 10:58:50 201

apache反向代理域名訪問,獲取到內網ip,而不是代理ip

給客戶組專案,配置了域名,訪問域名時,總是訪問的是內網ip,這樣直接暴露內網ip不合規定,所以先審查程式碼, jsp原先寫法: String path = request.getContextPath(); String basePath = request.getSc

apache反向代理出現502調整

bubuko 技術 com 接口調用 但是 pac 請求超時 con 信息 1、問題描述:項目上線後,會在接口調用時客戶端出現502異常,而服務端則對該此請求作出處理。 2、問題原因:經過排查後得知是由於請求並發量大,造成超過請求超時間,但是apache中隊列已經加載到請求

apache 80 端口 反向代理 tomcat 8080端口

pan ret 解決方案 alt rtu conf amp pac ber 最近有個jsp的項目要放到服務上,但服務器上已經有了XAMPP(apache + mysql + php), 已占用了80端口。但http默認是訪問80端口的。 先把tomcat 環境搭建起來, 發

Apache服務器反向代理,負載均衡,熱備份

pass eve oca apache服務 8.0 pro 最大 均衡 apache服務器 負載均衡: 第一步:首先下載安裝apache,我選擇的是Apache2.2.19. 第二步:修改apache安裝目錄下的conf/httpd.conf,打開如下配置(默認註釋掉了)