如何利用SSL配置Nginx反向代理

先決條件

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網頁。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享