歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> nginx代理https站點(親測),nginxhttps

nginx代理https站點(親測),nginxhttps

日期:2017/3/3 18:00:26   编辑:學習Linux

nginx代理https站點(親測),nginxhttps

nginx代理https站點(親測),nginxhttps


nginx代理https站點(親測)

首先,我相信大家已經搞定了nginx正常代理http站點的方法,下面重點介紹代理https站點的配置方法,以及注意事項,因為目前大部分站點有轉換https的需要所以學習這個方法也是很重要的,我就不啰嗦了 直奔主題了………………

測試環境

nginx版本 nginx/1.6.3

php版本 5.5.38

mysql版本 5.5.32

前提,後端web節點已經可以同時監聽80,443端口(站點可以正常通過web節點訪問http和https),具體配置https的方法網上一大堆,大家可以百度一下 生成一個ssl的免費證書 搭建https的web站點, 解析web本機ip的話可以分別實現http和https的訪問,(注意:web節點沒有設置rewrite規則實現http到https的自動跳轉)(如果不需要nginx做web代理 的情況下 web節點需要在location字段下配置rewrite 規則才能實現http到https的自動跳轉)

附上後端web nginx配置文件 (phpadmin.ff.com)

我們要做的重點來了

Nginx代理已經分別開啟80 和443的同時監聽 配置成類似後端web節點的配置,這裡我們以phpadmin.ff.com 這個域名進行測試 nginx代理上配置如下

通用配置nginx.conf

為了方便 我的upstream裡面只放了一個web節點 另外一個做備份使用,注意我的upstream 並沒有在後端加上:443這樣的信息

(include)Phpadmin.conf配置(注意紅色箭頭的部分,如果不加入這條規則 用戶必須手動輸入https://phpadmin.ff.com才能訪問https 而不能實現http到https的自動跳轉)

這裡標注的地方就是為了實現 http訪問到https的自動切換 ,如果不加這條rewrite 需要自己手動輸入https://phpadmin.ff.com 訪問,

總結:

1.nginx在做http代理時 定義的upstream默認端口號為80 (所以准確來說upstream並不是默認端口就是80,80只是nginx代理的一部分)

2.nginx在做https代理的時候,默認 upstream 是https的協議訪問443端口。

3.總之如果web對外提供https http 服務 那麼在web上配置https 和http 做一下rewrite

4.如果nginx代理對外提供https http服務 那麼在nginx代理上配置https 和http 做一下rewrite ,兩個不能同時做rewrite 不然訪問日志會爆炸,重定向一個死循環

目前還有的問題就是,做phpadmin的https 沒有內容上的不完整顯示,做discuz和WordPress的時候無法顯示圖片和一些網頁設計內容(只顯示了文本),這個有可能和https協議加密的內容有關。目前只有Google大神把所有內容都做了https處理。一般在登錄和做交易的時候會自動跳轉到https(可以使用nginx的基於擴展名的rewrite)

http://xxxxxx/Linuxjc/1179787.html TechArticle

Copyright © Linux教程網 All Rights Reserved