1. 程式人生 > >Apache/nginx設定反向代理

Apache/nginx設定反向代理

今天來說下apache和nginx設定反代理功能:

首先要開啟代理設定

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.so

然後就是設定網站配置

<VirtualHost *:80>

    ServerName web.com

    DocumentRoot /Users/momo/www/web/

    SetEnv APPLICATION_ENV "development"



    #反代理設定

     ProxyPass /api http://webapi.com/

     ProxyPassReverse /api/ http://webapi.com/



    <Directory /Users/momo/www/web/>

        DirectoryIndex index.html index.htm index.php

        AllowOverride All

        Order allow,deny

        Allow from all

    </Directory>

</VirtualHost>



<VirtualHost *:80>

    ServerName webapi.com

    DocumentRoot /Users/momo/www/webapi/public

    SetEnv APPLICATION_ENV "development"



    <Directory /Users/momo/www/webapi/public>

        DirectoryIndex index.php

        AllowOverride All

        Order allow,deny

        Allow from all

    </Directory>

</VirtualHost>

我們現在來看反代理設定這兩句

ProxyPass /api http://webapi.com/ : 將 web.com/api 下的所有請求全都交給 webapi.com 代理,例如 web.com/api/info.php 會交給 webapi.com/info.php 代理進行實際處理;

ProxyPassReverse /api http://webapi.com/:

webapi.com/info.php 中有如下程式碼:

<?php
      header('Location: http://webapi.com/result.php');
?>

那麼在重定向的時候,Apache會將HTTP請求重新設為http://web.com/api/result.php, 這樣的作用稍後講解

webapi.com/result.php 中有如下程式碼:

<?php
    phpinfo();die;
?>

那麼訪問結果就如下:

訪問web.com/api/info.php

apache將請求交給 webapi.com/info.php 代理,HTTP請求如下:

Request URL:

http://web.com/api/info.php

Request Method:

GET

Status Code:

200 Ok

Remote Address:

127.0.0.1:80

Referrer Policy:

no-referrer-when-downgrade



Connection:

Keep-Alive

Content-Length:

0

Content-Type:

text/html; charset=UTF-8

Date:

Wed, 20 Dec 2017 02:12:33 GMT

Keep-Alive:

timeout=5, max=100

Location:

http://web.com/api/result.php

Server:

Apache/2.4.27 (Unix) PHP/7.1.4

X-Powered-By:

PHP/7.1.4

可以發現其實request中的請求還是 web.com 的,但是它確實是由 webapi.com 來處理的

webapi.com/info.php 重定向到 webapi.com/result.php顯示PHP版本資訊

Request URL:

http://web.com/api/result.php

Request Method:

GET

Status Code:

200 OK

Remote Address:

127.0.0.1:80

Referrer Policy:

no-referrer-when-downgrade

也可以看到請求依然是 web.com/api/result.php

這裡就是 ProxyPassReverse 發揮作用的地方,如果不加這個項,重定向後HTTP請求會如下所示:

Request URL:
http://webapi.com/result.php

Request Method:

GET

Status Code:

200 OK

Remote Address:

127.0.0.1:80

Referrer Policy:

no-referrer-when-downgrade

請求中的GET是 webapi.com 而不是 web.com ,這是因為配置了ProxyPassReverse後,webapi.com/info.php 在重定向到 webapi.com/result.php 時,apache會將它調整回 web.com/api/result.php , 然後apache再將 web.com/api/result.php 代理給 webapi.com/result.php,所以說配置了 ProxyPassReverse 後,即使 web.com/api 下的程式有重定向到其他 webapi.com/的檔案的(如 info.php 重定向到 result.php),加上了ProxyPassReverse在請求中就看不到實際的代理介面請求地址

nginx的配置,原理就不再贅述了

server {

    listen  80;

    server_name  web.com;

    root   /usr/share/nginx/html/web;

    index  index.html index.htm index.php;

    location /api/ {

        proxy_pass http://webapi.com/;

    }

}

相關推薦

Apache/nginx設定反向代理

今天來說下apache和nginx設定反代理功能: 首先要開啟代理設定 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_conn

nginx設定反向代理後無法識別css,js等等

情況如下 目前nginx的配置: server { listen 80; server_name video.xxx.cn; proxy_set_header H

apachenginx實現反向代理

apache、nginx實現反向代理一、apache(不推薦): 代理80端口:a. 配置:b. 效果:c. 配置文件參考: ServerRoot "/etc/httpd" Listen 80 ProxyPass / http://admin.dollarphp.com/ ProxyPassReverse

Nginx+nodejs反向代理使用https 設定

如下:   nginx server 443 設定如下:  # server { listen 443 ssl; server_name api; #ssl on; #aerchi.com.cer

Apache設定反向代理泛目錄(二級目錄)的方法

1.設定httpd.conf開啟Apache24/conf資料夾下的httpd.conf設定檔案,找到一下幾行把前面的註釋‘#’刪除LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_mod

(Nginx+Apache)實現反向代理與負載均衡

1、概念實現這個反向代理能力並不能算是一個特別複雜的任務,但是在負載均衡中要求特別高的效率,這樣實現起來就不是十分簡單的了。每針對一次代理,代理伺服器就 必須開啟兩個連線,一個為對外的連線,一個為對內的連線,因此對於連線請求數量非常大的時候,代理伺服器的負載也就非常之大了,在最後反向代理伺服器會成 為服務的瓶

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

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

Linux之使用MogileFS分布式文件系統並使用nginx實現反向代理

mogilefs與nginx的點點滴滴MogileFS是一套高效的文件自動備份組件,由Six Apart開發,廣泛應用在包括LiveJournal等web2.0站點上。 MogileFS的特性: 工作在應用層,無單點,自動文件復制(復制的最小單位是class,而不是文件),傳輸中立且使用nfs或者http協議

LVS(負載均衡)+keepalived(HA)+Nginx反向代理)+Web(動靜態網站服務器)

網站服務器 web服務器 虛擬機 帶寬 規模 集群 考慮到LVS和Nginx的缺點(由於LVS采用的是同步請求轉發策略而Nginx采用的是異步轉發策略,結合兩者的缺點:作為負載均衡服務器的Nginx和LVS處理相同的請求時,所有的請求和響應流量都會經過Nginx服務器,但是使用LVS時

08-nginx反向代理、緩存功能

日誌 情況 request 模型 etc 報文 div 添加 agen nginx作為反向代理的工作模型 相對於LVS工作在四層,nginx工作於應用層,所以它能夠理解http請求報文中首部的請求方法、URL、http協議等信息。 nginx收到請求報文後,這個報文源IP為

奪命雷公狗---linux NO:39 linux下nginx反向代理

jpeg 顯示 技術 代碼 。。 cat jpg img image 反向代理圖如下所示: 由上圖可見,我們的服務器其實是分了兩臺,一臺專門存放 php 之類的源碼程序的,另外一臺是專門存放圖片用的服務器,由於圖片在服務器A不存在,所以可能導致如下顯示: 看不

Nginx+Tomcat反向代理利用certbot實現https

per share 反向 oot 一段 new gree package cti 一、利用Let‘s Encrypt 免費生成HTTPS證書 1、下載安裝certbot(Let‘s Encrypt ) 2、利用certbot生成證書 3、配置nginx的https證書 安裝

nginx TCP反向代理作mail郵件代理

nginx 代理 反向代理 用nginx TCP反向代理作mail郵件代理用nginx TCP反向代理作mail郵件代理1. 背景2. Nginx安裝(包括nginx_upstream_check_module)3. Nginx配置4. 總結1. 背景新版本nginx有TCP反向代理功能,ngin

個人技能總結7--Apache服務器反向代理,負載均衡,熱備份+Tomcat配置

conf 處的 配置文件 mon stat 服務 tor requests httpd 負載均衡: 第一步:首先下載安裝apache,我選擇的是Apache2.2.19. 第二步:修改apache安裝目錄下的conf/httpd.conf,打開如下配置(默認註釋掉了)  

詳解Nginx + Tomcat 反向代理 如何在高效的在一臺服務器部署多個站點

打開 工程目錄 tro better man vi編輯 agent 設置 服務器 轉自:http://www.jb51.net/article/100111.htm 今天專門為大家分享一下 Nginx + Tomcat 反向代理 如何在一臺服務器部署多個站點,節省服務器開

Ngnix技術研究系列1-通過應用場景看Nginx反向代理

emca pid 開頭 plain 性能 xxx md5 重新 行數 隨著我們業務規模的不斷增長,整個系統規模由兩年前的幾十臺服務器,井噴到現在2個數據中心,接近400臺服務器,上百個WebApi站點,上百個域名。 這麽多的WebApi站點這麽多的域名,管理和維護成本很高

nginx反向代理功能和緩存功能

inpu port dev ria 最全 number con ref 方便 html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer

Nginx+Tomcat反向代理之負載均衡,redis存放session,keepalived暫未搭建

註意 image 依次 shutdown 占用 securecrt moni secure memcache 由於公司特定機器還未申請到位,本人之前對這一塊也不是很了解,所以前期需要先探路的原因,直接在阿裏雲上申請了一臺測試機,這裏部署的所有服務及操作全部在一臺機器上,經過

nginx實現反向代理負載均衡

反向代理負載均衡 Nginx實現反向代理 nginx代理基於是ngx_http_proxy_module模塊的功能,該模塊有很多屬性配置選項,如: proxy_pass:指定將請求代理至server的URL路徑; proxy_set_header:將發送至 server的報文的某首部進行重寫

Nginx+keepalive反向代理

nginx、linux、反向代理1.安裝keepalive官方最新版 keepalived-1.2.7 tar zxvf keepalived-1.2.7.tar.gzcd keepalived-1.2.7在此之前。請安裝一下一些簡單的工具 yum install -y gcc openssl-devel