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成功
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,打開如下配置(默認註釋掉了)