需求:項目原來時http://開始的訪問路徑,現有需求改為https開頭的訪問路徑
申請一個自己的域名
好多的雲服務提供商都可以提供域名申請和SSL證書申請
我是找了個免費的注冊網站(新網 http://www.xinnet.com/)
SSL證書也有免費的
先說注冊域名
新網 http://www.xinnet.com/注冊的域名,新用戶搞活動時可以申請一個免費一年的域名,域名申請需要實名認證,我們測試使用申請一個根域名便宜的域名即可,比如xyz結尾的

域名有了以后還需要在控制台添加域名解析才能用

根據官網的提示提交解析,新增域名解析時新增自己申請的域名和www.域名綁定IP地址即可
申請SSL證書
可以到這個https://letsencrypt.osfipin.com/網站申請SSL證書,有效期為3個月到期重新申請即可;也可以到https://freessl.cn/去申請我用的第一個網站申請的。
申請證書的方式有好多種,有付費的也有免費的,有命令式的也有圖形式,下面這個時最簡單的圖形操作,新手容易理解上手,缺點就是到期需要手動重新申請
申請的時候按照人家官網提示操作即可,過程中需要驗證域名的有效性,也是按照提示驗證就行,
這里我有個疑問就是人家提供的驗證方式有倆種,其中一種是需要在網站絕對路徑下新增文件夾並拷貝一個txt驗證文件進去,因為我不清楚網站的絕對路徑是啥,
就選擇了另外一種驗證方式,到期再次申請的時候還要驗證。
驗證倆次,驗證通過后就可以申請SSL證書了,並下載證書

證書下載完成后,解壓壓縮文件,修改證書和密鑰的后綴,然后放在ngnix/config/的一個文件夾下面即可,放在其他地方ngnix啟動時找不到ssl證書

ngnix配置
默認的一下配置可以管它們,我這里配置了負載均衡的代理和ssl證書
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream test{ ip_hash; server 127.0.0.1:9001; server 127.0.0.1:9002; } server { listen 80; #監聽域名 server_name www.test97.xyz; rewrite ^(.*)$ https://$server_name$1 permanent; #這句是代表 把http的域名請求轉成https location / { proxy_pass http://test; proxy_set_header Host $host;#將請求頭轉發給后端服務器 proxy_set_header X-Forward-For $remote_addr;#后端的Web服務器可以通過X-Forwarded-For獲取用戶真實IP proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Server $host; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server server { listen 443 ssl; server_name www.test97.xyz; ssl_certificate cert/fullchain.pem; ssl_certificate_key cert/private.key; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { proxy_pass http://test; } } }
啟動ngnix或者重啟
start ngnix.exe 或者nginx.exe -s reload
把項目跑起來,在瀏覽器用https訪問一下試試
我的測試項目在自己電腦上運行,所以以上適用於windows使用,linux可以自己研究下,linux申請證書更容易直接使用命令,並且可以設置定時任務自己更新證書
測試時頁面引用http的請求可以暫時更改瀏覽器的安全設置來實現
JavaScript 頁面跳轉、頁面重定向
JavaScript 實現頁面跳轉重定向可以使用以下兩種方法:
window.location.replace("url")
類似 HTTP 重定向
將地址替換成新 url,該方法通過指定 URL 替換當前緩存在歷史里(客戶端)的項目,因此當使用 replace 方法之后,你不能通過"前進"和"后退"來訪問已經被替換的URL,這個特點對於做一些過渡頁面非常有用!
window.location.href="url"
類似點擊 a 標簽的鏈接。
跳轉到指定的 url。
