操做目錄在root的home下,/homephp
/mt/server/nginx/sbin/nginx
這是x雲默認nginx
路徑html
下載nginx1.8 stablenginx
wget http://nginx.org/download/nginx-1.8.0.tar.gz tar zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0
下載opensslweb
wget http://www.openssl.org/source/openssl-1.0.0d.tar.gz tar zxvf openssl-1.0.0d.tar.gz
nginx -V 查看目前nginx編譯選項,而後在新版本nginx下 執行,注意添加--with-openssl=/home/nginx-1.8.0/openssl-1.0.0d
選項服務器
./configure --user=www --group=www --prefix=/mt/server/nginx --with-http_stub_status_module --with-openssl=/home/nginx-1.8.0/openssl-1.0.0d --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-...
編譯,不要不要不要makeinstallsession
make
以後會看在當前目錄生成objs文件,執行測試
./objs/nginx -V nginx version: nginx/1.8.0 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55) built with OpenSSL 1.0.0d 8 Feb 2011 TLS SNI support enabled
發現TLS SNI support enabled
這咱們能夠放心用了,這能夠實現一個ip多個站點。ui
可是code
nginx -v
這時候仍是老版本的nginx,下面咱們須要作的比較關鍵server
咱們須要先備份
mv /mt/server/nginx/sbin/nginx /mt/server/nginx/sbin/nginx.old
而後轉移
cp ./objs/nginx /mt/server/nginx/sbin/nginx
測試下
/mt/server/nginx/sbin/nginx -t
ok,執行更新
make upgrade
而後的最後
nginx -V nginx version: nginx/1.8.0 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55) built with OpenSSL 1.0.0d 8 Feb 2011...
到此就成功了升級了nginx
而且添加了TLS SNI support
。
最後的步驟就是接申請證書,配置nginx文件就好。
申請完證書,會有對應的web服務器的配置參考。這裏簡單貼下
server { listen 443 ssl; ssl on; server_name www.maipingzheng.com; root /mt/www/mycnart1.2.0.1/; index index.php; ssl_certificate /mt/server/nginx1.2.5/conf/ssl/1_www.maipingzheng.com_bundle.crt; ssl_certificate_key /mt/server/nginx1.2.5/conf/ssl/2_www.maipingzheng.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ALL:xxxxxxxxxxxxGH:+MEDIUM:+LOxxxxXP; ssl_prefer_server_ciphers on; }
解決http二級域名跳轉https,解決http根域名跳轉https
server { listen 80; server_name maipingzheng.com; if ($host != 'www.maipingzheng.com') { rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent; } }
全站跳轉https
server { listen 80; server_name www.maipingzheng.com; rewrite ^/(.*)$ https://www.maipingzheng.com/$1 permanent; }
ok,收工。
*注意:若是想徹底實現全站https,你的全站連接都得是https的,不然綠鎖會不顯示。
至於如何平衡,就看具體需求了,通常都是註冊登陸支付購買。
或者採起js等其餘措施實現。*