CentOS 6.5 nginx+tomcat+ssl配置

来源:https://www.cnblogs.com/MartyCode/archive/2020/03/17/12512172.html
-Advertisement-
Play Games

本文檔用於指導在CentOS 6.5下使用nginx反向代理tomcat,併在nginx端支持ssl。 安裝nginx。參見CentOS 6 nginx安裝。 SSL證書申請。參見騰訊SSL證書申請和配置或[使用certbot為站點添加https支持]。 安裝tomcat。目前使用的版本為8.x。一 ...


本文檔用於指導在CentOS 6.5下使用nginx反向代理tomcat,併在nginx端支持ssl。

安裝nginx。參見CentOS 6 nginx安裝。

SSL證書申請。參見騰訊SSL證書申請和配置或[使用certbot為站點添加https支持]。

安裝tomcat。目前使用的版本為8.x。一般使用以下版本:點擊下載8.5.x

nginx 反向代理以及ssl配置
這裡僅介紹片段,例子如下,以letsencrypt證書為例(騰訊證書配置參見https://cloud.tencent.com/document/product/400/4143):

upstream tomcat {
server 127.0.0.1:8080 weight=1;
}

server {
server_name xxx.com;
charset utf-8;

   location / {
       proxy_http_version                   1.1;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP       $remote_addr;
       proxy_set_header Connection "";
       proxy_set_header X-Forwarded-Proto https;
       proxy_redirect off;
       client_max_body_size       100m;
       client_body_buffer_size   256k;
       proxy_connect_timeout     60;
       proxy_send_timeout         30;
       proxy_read_timeout         30;
       proxy_buffer_size         8k;
       proxy_buffers           4 64k;
       proxy_busy_buffers_size   64k;
       proxy_temp_file_write_size 64k;
       proxy_pass http://tomcat;
   }
    
   error_page 404             /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504 /50x.html;
   location = /50x.html {
       root   html;
   }


   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem; # managed by Certbot
   include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
定義後端伺服器。這裡未舉例負載均衡。

upstream tomcat {
server 127.0.0.1:8080 weight=1;
}
定義虛擬伺服器

這裡主要需要註意ssl證書的配置,以及代理部分的header設置,其影響tomcat端獲取真實客戶端ip、請求協議等,在未恰當配置的情況下可能造成獲取的ip是nginx伺服器的ip以及造成資源跨域問題。

tomcat配置
在nginx配置ssl證書的情況下,tomcat配置文件中不需要另行配置ssl證書,但需要獲取nginx設置的請求頭等信息。以下配置中的埠視具體情況配置。

將原本註釋的8080 Connector恢復,並改成如下

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443"
proxyPort="443"/>

在host標簽內添加如下(如果已存在則忽略)
其中%h用於顯示客戶端ip,但是在代理模式下顯示的是nginx的ip,可考慮將 "%h" 修改為 "%{X-Real-IP}i" 即可獲取到nginx請求頭中已配置的客戶端ip。
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t %r %s %b" />

獲取真實ip,其中httpsServerPort在nginx使用預設443埠時不需添加,否則應當指定。
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
protocolHeaderHttpsValue="https" httpsServerPort="7001"
/>


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 Controller Manager原理 1.1 Controller Manager概述 一般來說,智能系統和自動系統通常會通過一個“控制系統”來不斷修正系統的工作狀態。在Kubernetes集群中,每個Controller都是這樣的一個“控制系統”,它們通過API Server提供的(Lis ...
  • 什麼是信號量?通過對這個量的訪問和修改,讓大家有序推進 1. 共同修改信號量引出的問題 2. 競爭條件 3. 解決競爭條件的直觀想法 4. 臨界區 臨界區:臨界區是指進程中的一段需要訪問共用資源並且另一個進程處於相應代碼區域時便不會被執行的代碼區域 互斥:當一個進程處於臨界區並訪問共用資源時,沒有其 ...
  • 過去的三天里我花了一些時間做了一個基於 PyQt5 的 GUI 工具,可以幫助檢查你的代碼風格是否符合恩智浦 SDK 驅動開發規範,如今這個工具的第一個預覽版(v0.4)出來了 ...
  • 一. Linux簡介 1.Linux是一套可免費使用和自由傳播的類UNIX操作系統。1991年,芬蘭赫爾辛基大學學生Linus開發了Linux內核。此後,一大批程式愛好者、軟體技術專家對Linux進行修改和完善。Linux操作系統從誕生到現在,其開放、安全、穩定的特性得到越來越多用戶的認可,又由於其 ...
  • 01PARTCoreWebApi教程本地演示環境 Visual Studio2019 Vsersion:16.4.4 + NetCore3.1.2 02PARTNginx快速搭建配置負載均衡 Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD- ...
  • !/bin/sh 本文原內容來自:https://github.com/judasn/Linux Tutorial/blob/master/CentOS Extra Packages.md 可能額外需要移除/etc/yum.repos.d/mirrors rpmforge中失效的源,以及移除對應的. ...
  • 背景:測試伺服器 MySQL 資料庫不知何種原因宕機,且無法啟動,而原先的資料庫並沒有備份,重新搭建一個新伺服器把原data 複製出來 進行恢復 1 儘量把原data複製出來(一個都不要少以防意外 其實真正需要的是 你要恢復的庫 和ibdata1 innodb引擎適用) 2 在其他伺服器上 搭建一個 ...
  • MySQL主從複製原理 主伺服器資料庫的每次操作都會記錄在其二進位文件mysql bin.xxx(該文件可以在mysql目錄下的data目錄中看到)中,從伺服器的I/O線程使用專用賬號登錄到主伺服器中讀取該二進位文件,並將文件內容寫入到自己本地的中繼日誌relay log文件中,然後從伺服器的SQL ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...