首頁 運維 Nginx 如何利用SSL設定Nginx反向代理

如何利用SSL設定Nginx反向代理

May 13, 2023 pm 03:19 PM
nginx ssl

先決條件

1.後端伺服器:為了本教學的目的,我們使用在連接埠8080的localhost上執行的tomcat伺服器

#注意: - 當您開始代理請求時,請確保應用程式伺服器已啟動。

2.ssl憑證:我們還需要在伺服器上設定ssl憑證。我們可以使用 let's encrypt的加密證書,你可以用這裡提到的程式得到一個。但是對於本教程,我們將使用自簽名證書,可以透過從終端運行以下命令來創建,

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/certs/cert.key -out /etc/nginx/certs/cert.crt
登入後複製

使用ssl配置nginx反向代理的下一步將是nginx安裝,

安裝nginx

ubuntu

#nginx可用於預設的ubuntu儲存庫。這麼簡單,使用以下命令安裝它,

$ sudo apt-get update && sudo apt-get install nginx
登入後複製

現在啟動服務並啟用它以進行啟動,

# systemctl start nginx 
 
# systemctl enable nginx
登入後複製

現在檢查nginx安裝,我們可以打開web瀏覽器並輸入系統ip作為url以取得預設的nginx網頁,這確認nginx工作正常。

使用ssl配置nginx反向代理程式

現在我們擁有了使用ssl配置nginx反向代理程式所需的所有東西。我們現在需要在nginx中進行配置,我們將使用預設的nginx配置文件,即/etc/nginx/conf.d/default.conf.

假設這是我們第一次對配置進行任何更改,打開文件並刪除或註釋所有舊文件內容,然後將以下條目放入文件中。

vi /etc/nginx/conf.d/default.conf

server { 
 
listen 80; 
 
return 301 https://$host$request_uri; 
 
} 
 
 
 
 
server { 
 
listen 443; 
 
server_name linuxtechlab.com; 
 
ssl_certificate /etc/nginx/ssl/cert.crt; 
 
 
 
 
ssl_certificate_key /etc/nginx/ssl/cert.key; 
 
ssl on; 
 
ssl_session_cache builtin:1000 shared:ssl:10m; 
 
ssl_protocols tlsv1 tlsv1.1 tlsv1.2; 
 
ssl_ciphers high:!anull:!enull:!export:!camellia:!des:!md5:!psk:!rc4; 
 
ssl_prefer_server_ciphers on; 
 
access_log /var/log/nginx/access.log; 
 
 
 
 
location / { 
 
proxy_set_header host $host; 
 
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_pass http://localhost:8080; 
 
proxy_read_timeout 90; 
 
proxy_redirect http://localhost:8080 https://linuxtechlab.com; 
 
} 
 
}
登入後複製

完成所有變更後,儲存檔案並退出。在我們重新啟動nginx服務以實現所做的更改之前,我們將逐節討論我們所做的配置。

第1節

server { 
listen 80; 
return 301 https://$host$request_uri; 
}
登入後複製

在這裡,我們告訴我們要聽取對連接埠80的任何請求,然後將其重定向到https。

第2節

listen 443; 
 
server_name linuxtechlab.com; 
 
ssl_certificate /etc/nginx/ssl/cert.crt; 
 
ssl_certificate_key /etc/nginx/ssl/cert.key; 
 
ssl on; 
 
ssl_session_cache builtin:1000 shared:ssl:10m; 
 
ssl_protocols tlsv1 tlsv1.1 tlsv1.2; 
 
ssl_ciphers high:!anull:!enull:!export:!camellia:!des:!md5:!psk:!rc4; 
 
ssl_prefer_server_ciphers on;
登入後複製

現在這些是我們正在使用的一些預設的nginx ssl選項,它們告訴nginx web伺服器支援哪種協定版本,ssl密碼。

第3節

location / { 
 
proxy_set_header host $host; 
 
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_pass http://localhost:8080; 
 
proxy_read_timeout 90; 
 
proxy_redirect http://localhost:8080 https://linuxtechlab.com; 
 
}
登入後複製

現在,本節介紹代理以及傳入請求進入後的位置。現在我們已經討論了所有配置,我們將檢查然後重新啟動nginx服務。

要檢查nginx,請執行以下命令

# nginx -t
登入後複製

一旦我們所有設定檔都ok,我們將重新啟動nginx服務

# systemctl restart nginx
登入後複製

就是這樣,我們的ssl nginx反向代理現已準備就緒。現在要測試設置,您所要做的就是打開web瀏覽器並輸入url。我們現在應該重定向到apache tomcat網頁。

以上是如何利用SSL設定Nginx反向代理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

tomcat伺服器怎麼能讓外網訪問 tomcat伺服器怎麼能讓外網訪問 Apr 21, 2024 am 07:22 AM

要讓 Tomcat 伺服器對外網訪問,需要:修改 Tomcat 設定文件,允許外部連接。新增防火牆規則,允許存取 Tomcat 伺服器連接埠。建立 DNS 記錄,將網域名稱指向 Tomcat 伺服器公有 IP。可選:使用反向代理提升安全性和效能。可選:設定 HTTPS 以提高安全性。

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

Welcome to nginx!怎麼解決? Welcome to nginx!怎麼解決? Apr 17, 2024 am 05:12 AM

要解決"Welcome to nginx!" 錯誤,需要檢查虛擬主機配置,啟用虛擬主機,重新加載Nginx,如果無法找到虛擬主機配置文件,則創建預設頁面並重新加載Nginx,這樣錯誤訊息將消失,網站將正常顯示。

docker容器之間如何通信 docker容器之間如何通信 Apr 07, 2024 pm 06:24 PM

Docker 環境中容器通訊有五種方法:共用網路、Docker Compose、網路代理、共用磁碟區、訊息佇列。根據隔離性和安全性需求,選擇最合適的通訊方法,例如利用 Docker Compose 簡化連線或使用網路代理來提高隔離性。

html檔案怎麼產生網址 html檔案怎麼產生網址 Apr 21, 2024 pm 12:57 PM

若要將 HTML 檔案轉換為網址,需要使用網頁伺服器,包括以下步驟:取得網頁伺服器。設定網路伺服器。上傳 HTML 文件。建立域名。路由請求。

nodejs專案怎麼部署到伺服器 nodejs專案怎麼部署到伺服器 Apr 21, 2024 am 04:40 AM

Node.js 專案的伺服器部署步驟:準備部署環境:取得伺服器存取權限、安裝 Node.js、設定 Git 儲存庫。建置應用程式:使用 npm run build 產生可部署程式碼和相依性。上傳程式碼到伺服器:透過 Git 或檔案傳輸協定。安裝依賴項:SSH 登入伺服器並使用 npm install 安裝應用程式相依性。啟動應用程式:使用 node index.js 等命令啟動應用程序,或使用 pm2 等進程管理器。設定反向代理(可選):使用 Nginx 或 Apache 等反向代理路由流量到應用程式

dockerfile中最常見的指令是什麼 dockerfile中最常見的指令是什麼 Apr 07, 2024 pm 07:21 PM

Dockerfile 中最常用的指令有:FROM:建立新映像或衍生新映像RUN:執行指令(安裝軟體、設定係統)COPY:複製本機檔案到映像ADD:類似COPY,可自動解壓縮tar 存檔或取得URL 文件CMD:指定容器啟動時的指令EXPOSE:宣告容器監聽埠(但不公開)ENV:設定環境變數VOLUME:掛載主機目錄或匿名磁碟區WORKDIR:設定容器中的工作目錄ENTRYPOINT:指定容器啟動時要執行的可執行檔(類似CMD,但不可涵蓋)

nodejs可以外網存取麼 nodejs可以外網存取麼 Apr 21, 2024 am 04:43 AM

是的,Node.js 可以外網存取。您可以使用下列方法:使用 Cloud Functions 部署函數並公開存取。使用 Express 框架建立路由並定義端點。使用 Nginx 反向代理請求到 Node.js 應用程式。使用 Docker 容器運行 Node.js 應用程式並透過連接埠映射公開。

See all articles