成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Nginx 最全小白實(shí)戰(zhàn)教程之二 (代理篇)

sarva / 1319人閱讀

摘要:客戶端必須要進(jìn)行一些特別的設(shè)置才能使用正向代理。正向代理還可以使用緩沖特性減少網(wǎng)絡(luò)使用率。反向代理的典型用途是將防火墻后面的服務(wù)器提供給用戶訪問。反向代理對(duì)外都是透明的,訪問者并不知道自己訪問的是一個(gè)代理。

一、相關(guān)概念

代理一般分為正向代理和反向代理,以下是他們的定義(以下內(nèi)容引自網(wǎng)上)

正向代理,也就是傳說中的代理,他的工作原理就像一個(gè)跳板,簡單的說,我是一個(gè)用戶,我訪問不了某網(wǎng)站,但是我能訪問一個(gè)代理服務(wù)器,這個(gè)代理服務(wù)器呢,他能訪問那個(gè)我不能訪問的網(wǎng)站,于是我先連上代理服務(wù)器,告訴他我需要那個(gè)無法訪問網(wǎng)站的內(nèi)容,代理服務(wù)器去取回來,然后返回給我。從網(wǎng)站的角度,只在代理服務(wù)器來取內(nèi)容的時(shí)候有一次記錄,有時(shí)候并不知道是用戶的請(qǐng)求,也隱藏了用戶的資料,這取決于代理告不告訴網(wǎng)站。
結(jié)論就是,正向代理 是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的設(shè)置才能使用正向代理。

反向代理 例如用戶訪問?http://www.test.com/readme ,但www.test.com上并不存在readme頁面,他是偷偷從另外一臺(tái)服務(wù)器上取回來,然后作為自己的內(nèi)容返回用戶,但用戶并不知情。這里所提到的?www.test.com?這個(gè)域名對(duì)應(yīng)的服務(wù)器就設(shè)置了反向代理功能。
結(jié)論就是,反向代理正好相反,對(duì)于客戶端而言它就像是原始服務(wù)器,并且客戶端不需要進(jìn)行任何特別的設(shè)置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內(nèi)容發(fā)送普通請(qǐng)求,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請(qǐng)求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。

兩者區(qū)別就是:

用途上講,正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑。正向代理還可以使用緩沖特性減少網(wǎng)絡(luò)使用率。反向代理的典型用途是將防火墻后面的服務(wù)器提供給Internet用戶訪問。反向代理還可以為后端的多臺(tái)服務(wù)器提供負(fù)載平衡,或?yàn)楹蠖溯^慢的服務(wù)器提供緩沖服務(wù)。另外,反向代理還可以啟用高級(jí)URL策略和管理技術(shù),從而使處于不同web服務(wù)器系統(tǒng)的web頁面同時(shí)存在于同一個(gè)URL空間下。

安全性講,正向代理允許客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務(wù)。反向代理對(duì)外都是透明的,訪問者并不知道自己訪問的是一個(gè)代理。

二、Nginx代理 1.簡單的代理

這樣安裝的配置文件位置在/etc/nginx/conf.d。其中有一個(gè)默認(rèn)的配置文件default.conf,內(nèi)容如下:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ .php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache"s document root
    # concurs with nginx"s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}

這是一個(gè)比較全面的配置文件。且該目錄下所有的.conf文件都會(huì)加載的,只要配置不沖突,所有的配置都會(huì)生效。

接下來在此目錄新建guo.conf,將此域名訪問代理我的個(gè)人博客 www.guoxiaozhong.cn。
具體內(nèi)容如下:

server {
    listen       80;
    server_name  你的域名或者IP;  
    location / {
        proxy_pass http://www.guoxiaozhong.cn;
    }
}

重新加載配置文件;

[root@localhost conf.d]# service nginx reload
Reloading nginx:                                           [  OK  ]
[root@localhost conf.d]# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

訪問效果如下:

目前的代理拓?fù)鋱D為:

2.指令說明

listen:要監(jiān)聽的端口,我們一般都是監(jiān)聽80端口,其他端口都封死,防火墻只剩80
server_name:服務(wù)器的IP或者綁定的域名
location /:這個(gè)是路徑的意思,/這個(gè)是代表訪問的路徑,/代表根目錄

proxy_pass指令:

語法:proxyz_pass URL
默認(rèn)值:no
使用字段:location,location中的if字段

這個(gè)指令設(shè)置被代理服務(wù)器的地址和被映射的URI,地址可以使用主機(jī)名或IP加端口號(hào)的形式,例如:

proxy_pass http://www.guoxiaozhong.cn;

注意:一定要寫http://

3.分析日志
博客服務(wù)器的日志

www.guoxiaozhong 博客服務(wù)器的日志

Nginx服務(wù)器的IP - - [03/Jan/2017:10:49:19 +0800] "GET /2016/11/29/office-2016-for-mac-de-wordmo-ban-wen-jian-jia-wei-zhi/ HTTP/1.0" 200 4112 "設(shè)置的代理域名" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:10:49:20 +0800] "GET /content/images/2016/10/logo.jpeg HTTP/1.0" 206 1 "設(shè)置的代理域名" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:10:49:20 +0800] "GET /content/images/2016/10/logo.jpeg HTTP/1.0" 206 1778 "設(shè)置的代理域名" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:10:49:21 +0800] "GET /assets/images/favicon.png HTTP/1.0" 200 2562 "設(shè)置的代理域名" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:53 +0800] "GET / HTTP/1.0" 200 3951 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:53 +0800] "GET /assets/css/vno.css?v=6d7f73f25e HTTP/1.0" 200 4187 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:54 +0800] "GET /assets/css/tomorrow.css?v=6d7f73f25e HTTP/1.0" 200 610 "http://xtrader.spartajet.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:54 +0800] "GET /assets/css/animate.css HTTP/1.0" 200 5066 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:55 +0800] "GET /assets/js/main.js?v=6d7f73f25e HTTP/1.0" 200 662 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
Nginx服務(wù)器的IP - - [03/Jan/2017:11:01:55 +0800] "GET /assets/js/highlight.pack.js?v=6d7f73f25e HTTP/1.0" 200 15760 "http://xtrader.spartajet.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"

可以看到,我的博客服務(wù)器上的日志只顯示Nginx的IP和Nginx設(shè)置的域名,沒有客戶端的信息。

Nginx代理服務(wù)器的日志
客戶端IP - - [03/Jan/2017:11:01:55 +0800] "GET /assets/js/highlight.pack.js?v=6d7f73f25e HTTP/1.1" 200 15788 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
客戶端IP - - [03/Jan/2017:11:01:58 +0800] "GET /content/images/2016/10/logo.jpeg HTTP/1.1" 200 42960 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
客戶端IP - - [03/Jan/2017:11:02:13 +0800] "GET /content/images/2016/10/e69ef0aa357bd34022b2824daf3b5a33_r-1.jpg HTTP/1.1" 200 176528 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"
客戶端IP - - [03/Jan/2017:11:02:16 +0800] "GET /assets/images/favicon.png HTTP/1.1" 200 2562 "設(shè)置的代理域名" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" "-"

代理服務(wù)器上的日志顯示客戶端的IP。

4.配置文件顯示客戶端IP

配置guo.conf文件:

server {
    listen       80;
    server_name  博客代理域名;

    location / {
        proxy_pass http://www.guoxiaozhong.cn;
        proxy_set_header            X-real-ip $remote_addr;
    }
}

主要是加上;

proxy_set_header            X-real-ip $remote_addr;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39846.html

相關(guān)文章

  • Nginx 最全小白實(shí)戰(zhàn)教程之三 (代理TCP

    摘要:確定偵聽通配符地址的套接字是否只接受連接,或者是接受和連接。此參數(shù)配置偵聽套接字的行為。某些操作系統(tǒng)支持使用,和套接字選項(xiàng)在每個(gè)套接字上設(shè)置保持活動(dòng)參數(shù)??梢允÷砸粋€(gè)或兩個(gè)參數(shù),在這種情況下,相應(yīng)套接字選項(xiàng)的系統(tǒng)默認(rèn)設(shè)置將有效。 Nginx代理TCP主要是使用stream模塊,這個(gè)功能是從1.9.0版本開始的。我用它來代理Mysql。 一、配置代碼 stream { upstr...

    nanfeiyan 評(píng)論0 收藏0
  • Nginx 最全小白實(shí)戰(zhàn)教程之一 (安裝

    摘要:一環(huán)境準(zhǔn)備操作系統(tǒng)位版本二安裝下載解壓新建用戶與組組編譯配置文件安裝重定向支持和支持,如果不需要可以不安裝。 一、環(huán)境準(zhǔn)備 操作系統(tǒng):Centos6.4 64位 Nginx版本:1.4.2 二、安裝Nginx 1.下載 [root@localhost nginx]# cd /usr/local/ [root@localhost nginx]# mkdir nginx [root@l...

    brianway 評(píng)論0 收藏0
  • 小白程序員一路晉升為大廠高級(jí)技術(shù)專家我看過哪些書籍?(建議收藏)

    摘要:大家好,我是冰河有句話叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專家我看過哪些技術(shù)類書籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0
  • 非計(jì)算機(jī)專業(yè)小白自學(xué)爬蟲全指南(附資源)

    摘要:爬蟲是我接觸計(jì)算機(jī)編程的入門。練練練本文推薦的資源就是以項(xiàng)目練習(xí)帶動(dòng)爬蟲學(xué)習(xí),囊括了大部分爬蟲工程師要求的知識(shí)點(diǎn)。拓展閱讀一文了解爬蟲與反爬蟲最后,請(qǐng)注意,爬蟲的工作機(jī)會(huì)相對(duì)較少。 爬蟲是我接觸計(jì)算機(jī)編程的入門。哥當(dāng)年寫第一行代碼的時(shí)候別提有多痛苦。 本文旨在用一篇文章說透爬蟲如何自學(xué)可以達(dá)到找工作的要求。 爬蟲的學(xué)習(xí)就是跟著實(shí)際項(xiàng)目去學(xué),每個(gè)項(xiàng)目會(huì)涉及到不同的知識(shí)點(diǎn),項(xiàng)目做多了,自然...

    CarlBenjamin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

sarva

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<