背景
由於專案需求,安全起見,需要將先前的http介面存取變成https訪問,所以需要設定ssl憑證。專案的架構是這樣的:
基本架構是硬負載(readwhere) 軟負載(nginx) tomcat集群,現在的問題是ssl憑證要配置在哪裡,直接配置在硬負載上?還是分別配置在nginx和tomcat上?還是其他的配置方法呢?
首先在硬負載上配置放棄了,然後透過在網路上尋找資料,發現可以只在nginx上設定證書,就是說nginx存取使用https,而nginx與tomcat之間使用http進行銜接,這樣就遊了一個整體思路。
關於ssl憑證
關於ssl憑證這裡簡單進行介紹,也是因為專案需要,進行了簡單的了解。
ssl憑證分為大致分為三種,網域級(dv)、企業級(ov)、增強級(ev),安全性以及價格依序增加。根據自己的需求選擇,個人使用可以使用dv,便宜;企業用的話一般使用ov,特殊情況下使用ev。
ssl憑證設定
由於nginx對於ssl憑證設定的支援才使得這種實作方式成為了可能,不得不感嘆nginx的強大。
證書準備
nginx配置需要.pem/.crt證書.key秘鑰,如果您現在擁有的是其他形式的證書,請按照相關說明轉化成要求的證書類型,否則是不能完成證書的配置的。一般購買商家都會有對應的轉換工具。
準備好了之後,將憑證和秘鑰放到nginx的conf目錄下(也就是跟設定檔nginx.conf在同一個目錄),這裡特別要注意:
如果是在linux系統下配置,這就算準備好了;
#如果是在windows系統下,需要將.key秘鑰檔案中的密碼移除,否則就會導致配置之後nginx啟動不起來,這裡是一個坑,本人就卡在了這裡,具體處理方法也很簡單,在網上下載openssl的windows版本,然後將cmd切換到bin目錄下,執行openssl rsa -in server.key -out server2.key,產生的server2.key就是設定所需的密碼文件,但需要將文件名稱改成server.key。
修改nginx設定檔
以下是我nginx.conf設定檔的局部,埠著迷沒有使用預設的443,而是改成了8185,根據您的需求進行修改即可,其他配置基本上按照下面就沒問題。
server { listen 8185; server_name localhost; ssl on; ssl_certificate server.pem; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_ciphers high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium; ssl_prefer_server_ciphers on; location / { proxy_set_header host $host:$server_port; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; proxy_connect_timeout 5; proxy_send_timeout 5; proxy_read_timeout 5; proxy_pass http://qlddm_server; }
修改tomcat設定檔
雖然不需要在tomcat設定證書,但是仍然需要修改tomcat的設定server.xml設定文件,具體包含兩個地方:
<connector executor="tomcatthreadpool" port="7083" protocol="org.apache.coyote.http11.http11nio2protocol" connectiontimeout="20000" maxconnections="8000" redirectport="8185" proxyport="8185" enablelookups="false" acceptcount="100" maxpostsize="10485760" compression="on" disableuploadtimeout="true" compressionminsize="2048" acceptorthreadcount="2" compressablemimetype="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" uriencoding="utf-8" />
需要將redirectport和proxyport都修改為您的nginx監聽埠號。
<valve classname="org.apache.catalina.valves.remoteipvalve" remoteipheader="x-forwarded-for" protocolheader="x-forwarded-proto" protocolheaderhttpsvalue="https" httpsserverport="8185"/>
要增加以上的value標籤,注意httpsserverport也需要修改為nginx監聽埠號碼。
以上是Nginx如何設定SSL憑證實現Https訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

NGINX和Apache都是強大的Web服務器,各自在性能、可擴展性和效率上有獨特的優勢和不足。 1)NGINX在處理靜態內容和反向代理時表現出色,適合高並發場景。 2)Apache在處理動態內容時表現更好,適合需要豐富模塊支持的項目。選擇服務器應根據項目需求和場景來決定。

NGINX適合處理高並發請求,Apache適合需要復雜配置和功能擴展的場景。 1.NGINX採用事件驅動、非阻塞架構,適用於高並發環境。 2.Apache採用進程或線程模型,提供豐富的模塊生態系統,適合複雜配置需求。

NGINX可用於提升網站性能、安全性和可擴展性。 1)作為反向代理和負載均衡器,NGINX可優化後端服務和分擔流量。 2)通過事件驅動和異步架構,NGINX高效處理高並發連接。 3)配置文件允許靈活定義規則,如靜態文件服務和負載均衡。 4)優化建議包括啟用Gzip壓縮、使用緩存和調整worker進程。

NGINXUnit支持多種編程語言,通過模塊化設計實現。 1.加載語言模塊:根據配置文件加載相應模塊。 2.應用啟動:調用語言運行時執行應用代碼。 3.請求處理:將請求轉發給應用實例。 4.響應返回:將處理後的響應返回給客戶端。

NGINX和Apache各有優劣,適合不同場景。 1.NGINX適合高並發和低資源消耗場景。 2.Apache適合需要復雜配置和豐富模塊的場景。通過比較它們的核心特性、性能差異和最佳實踐,可以幫助你選擇最適合需求的服務器軟件。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

要關閉 Nginx 服務,請按以下步驟操作:確定安裝類型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服務:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自動啟動(可選):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器