ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          http://rhomobi.com/topics/49

          nginx為了實現反向代理的需求而增加了一個ngx_http_proxy_module模塊。其中proxy_set_header指令就是該模塊需要讀取的配置文件。在這里,所有設置的值的含義和http請求同中的含義完全相同,除了Host外還有X-Forward-For。
          Host的含義是表明請求的主機名,因為nginx作為反向代理使用,而如果后端真是的服務器設置有類似防盜鏈或者根據http請求頭中的host字段來進行路由或判斷功能的話,如果反向代理層的nginx不重寫請求頭中的host字段,將會導致請求失敗【默認反向代理服務器會向后端真實服務器發送請求,并且請求頭中的host字段應為proxy_pass指令設置的服務器】。
          同理,X_Forward_For字段表示該條http請求是有誰發起的?如果反向代理服務器不重寫該請求頭的話,那么后端真實服務器在處理時會認為所有的請求都來在反向代理服務器,如果后端有防攻擊策略的話,那么機器就被封掉了。因此,在配置用作反向代理的nginx中一般會增加兩條配置,修改http的請求頭:
          proxy_set_header Host $http_host;
          proxy_set_header X-Forward-For $remote_addr;

          這里的$http_host和$remote_addr都是nginx的導出變量,可以再配置文件中直接使用。如果Host請求頭部沒有出現在請求頭中,則$http_host值為空,但是$host值為主域名。因此,一般而言,會用$host代替$http_host變量,從而避免http請求中丟失Host頭部的情況下Host不被重寫的失誤。
          posted on 2015-01-06 22:24 ivaneeo 閱讀(769) 評論(0)  編輯  收藏 所屬分類: GNU牛力
          主站蜘蛛池模板: 宝应县| 金平| 阿拉善左旗| 台东县| 辽阳县| 西畴县| 赤壁市| 大姚县| 嘉义县| 武平县| 大英县| 潮州市| 广州市| 廉江市| 太康县| 亳州市| 余姚市| 阿荣旗| 固阳县| 秀山| 涟源市| 泰顺县| 芒康县| 都江堰市| 昭通市| 紫金县| 库伦旗| 福贡县| 南平市| 西藏| 兰溪市| 玛曲县| 绥棱县| 公安县| 泸水县| 乳源| 东光县| 土默特左旗| 荔波县| 南郑县| 西宁市|