天天看點

nginx和阿裡雲分别配置域名跳轉的過程

故事1)産品經理提出一個需求,希望把公司在阿裡雲的http://dvlbuy.lechangebuy.com網站跳轉到http://dvlbuy.lechange.com。

首先現在windows用cmd去ping一下http://dvlbuy.lechangebuy.com,看了後發現這個後面綁定的是一個伺服器位址,如圖:

<a href="http://s5.51cto.com/wyfs02/M01/8D/5F/wKioL1iae1OwYDBfAAA8oc_qkEA748.png" target="_blank"></a>

那麼登陸這個伺服器,找到裡面的nginx,在nginx/conf檔案裡面建立立一個叫tiaozhuan.conf檔案,内容如下:

<a href="http://s3.51cto.com/wyfs02/M01/8D/62/wKiom1iafSvTZZxrAACWFrxRxkI362.png" target="_blank"></a>

然後在nginx.conf最下面添加一句“include tiaozhuan.conf;”在http{}之裡。

然後重新開機nginx檢視效果即可。具體rewrite的用法,這裡就不多說了。

故事2)過了幾天,産品經理又來了,說現在需求要更改了,現在要求把阿裡雲的http://dvlbuy.lechangebuy.com跳轉到https://dvlbuy.lechange.com:8088。

既然還是域名跳轉,那麼這一次我們換一個進階一點的方法,首先登入阿裡雲的lechangebuy.com的域名解析處對dvlbuy.lechangebuy.com進行一次修正的域名解析,如圖:

<a href="http://s4.51cto.com/wyfs02/M02/8D/5F/wKioL1iae_vQ70dXAAE3vc8A-UI539.png" target="_blank"></a>

這裡我們使用顯性url,顯性url是指“将域名指向一個http(s)協定位址,通路域名時,自動跳轉至目标位址”(例如:将www.net.cn顯性轉發到www.hichina.com後,通路www.net.cn時,位址欄顯示的位址為:www.hichina.com)。

完事之後,我們測試一下發現https://dvlbuy.lechange.com:8088打不開,因為lechange.com裡沒有https的認證,于是我們需要申請一個https認證,在申請成功之後會獲得一個key和一個CDN證書,如圖:

<a href="http://s4.51cto.com/wyfs02/M01/8D/5F/wKiom1iZiSaQrCJ2AAAuI2m3fXs316.png" target="_blank"></a>

然後我們ping一下目标位址dvlbuy.lechange.com,如果後面是SLB就簡單了,直接在阿裡雲的SLB裡添加https證書就好。但是很不幸,dvlbuy.lechange.com後面綁定的是一個伺服器,那麼就需要nginx ssl方法。

首先我們登陸到dvlbuy.lechange.com這台伺服器,找到nginx的位置,然後在nginx目錄下面#mkdir ssl,然後在ssl檔案夾裡建立兩個檔案,一個叫server-com.crt,另一個叫server-com.key。

其中server-com.crt的内容是複制CDN證書格式的内容,即是以“----BEGIN CERTIFICATE-----”開頭的。而server-com.key的内容就是複制server.key的内容,即是以“-----BEGIN RSA PRIVATE KEY-----”開頭的。這倆檔案都給740權限。

因為規定要通路的是8088端口,然後在原來的dvlbuy.lechange.com對應的conf檔案裡,添加“listen       8088 ssl;”以及下面的内容:

1

2

3

4

5

6

<code>    </code><code># config for ssl</code>

<code>   </code><code>ssl_certificate      </code><code>/nginx</code><code>的完整路徑</code><code>/ssl/server-com</code><code>.crt;</code>

<code>   </code><code>ssl_certificate_key  </code><code>/nginx</code><code>的完整路徑</code><code>/ssl/server-com</code><code>.key;</code>

<code>   </code><code>ssl_session_timeout  5m;</code>

<code>   </code><code>#ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;</code>

<code>   </code><code>#ssl_ciphers  ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;</code>

ssl_protocols和ssl_ciphers是加密算法的東西,可加可不加。然後儲存這個conf檔案,重新開機nginx,去浏覽器看一下效果就好了。

參考資料:http://blog.csdn.net/weixin_35884835/article/details/52588157

 本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1895765

繼續閱讀