1. 程式人生 > >nginx配置http+https訪問tomcat專案以及配置http強轉https

nginx配置http+https訪問tomcat專案以及配置http強轉https

來自部落格:https://blog.csdn.net/weidong_y/article/details/80559607

ssl自簽證書部落格:https://www.cnblogs.com/hzm112567/p/4269316.html

一、在 linux (CentOS)上安裝 nginx

第一步:新增 nginx 儲存庫

  1. xshell> yum install epel-release  

第二步:安裝 nginx

  1. xshell> yum install nginx  

使用 yum 安裝 nginx 後,nginx 的預設路徑為:/etc/nginx

第三步:啟動 nginx

  1. xshell> systemctl start nginx  
如果你正在執行防火牆,請執行以下命令以允許 HTTP 和 HTTPS 通訊:
  1. xshell> firewall-cmd --permanent --zone=public --add-service=http   
  2. xshell> firewall-cmd --permanent --zone=public --add-service=https  
  3. xshell> firewall-cmd --reload  

第四步:訪問 nginx 以驗證安裝是否成功

由於 nginx 預設的埠號為 80 ,直接在瀏覽器上輸入你的 ip 地址 +80 埠號(例如:111.111.111.111:80),能夠訪問到 

nginx 的頁面即表示 nginx 已經安裝成功。類似於下圖。


第五步: 設定系統啟動時候啟用 nginx 

  1. xshell> systemctl enable nginx  

二、使用 nginx 配置域名訪問 tomcat 專案

第一步: 開啟 nginx 的配置檔案 nginx.conf。

具體路徑:/etc/nginx/nginx.conf

第二步:配置檔案需要修改的原始碼(配置講解在第三步)

  1. upstream xx{   
  2.        server 193.112.53.11:8080;  
  3.    }  
  4.    server {  
  5.        listen       80 default_server;  
  6.        listen       [::]:80 default_server;  
  7.        server_name  www.yyddd.cn;  
  8.        root         /usr/share/nginx/html;  
  9.        # Load configuration files for the default server block.
  10.        include /etc/nginx/default.d/*.conf;  
  11.        location / {  
  12.     proxy_pass http://xx/cz_manager/;
  13.     proxy_set_header Host $http_host;  
  14.                proxy_set_header X-Real-IP $remote_addr;  
  15.                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  16.        }  
  17.        error_page 404 /404.html;  
  18.            location = /40x.html {  
  19.        }  
  20.        error_page 500502503504 /50x.html;  
  21.            location = /50x.html {  
  22.        }  
  23.    }  

第三步:配置檔案修改講解


第四步:配置完成後儲存,然後重啟(重新載入) nginx ,不然訪問不到

  1. xshell> nginx -s reload  

第五步:驗證

在瀏覽器上,輸入自己配置的域名,如果能訪問到配置的專案,就說明配置成功。如果還有什麼不懂的話可以給

我留言。

三、nginx 配置 https 

第一步:申請證書

關於證書的申請,請轉步看我另外一篇部落格的第一部分:

第二步:把證書上傳到伺服器上

下面是我在騰訊雲申請的 ssl 證書,下載證書後,開啟的檔案內容如下,我們使用的是 nginx 配置 https ,所有

開啟 Nginx 檔案,把檔案下的兩個檔案上傳到伺服器上(放在哪裡自己決定,知道路徑就行,後面配置需要用到

證書的路徑)



***********自簽證書*********************************************************

1、首先確保機器上安裝了openssl和openssl-devel

# yum install openssl
# yum install openssl-devel

2、生成證書

複製程式碼
首先,進入你想建立證書和私鑰的目錄,例如:
# cd /etc/nginx/

建立伺服器私鑰,命令會讓你輸入一個口令:
# openssl genrsa -des3 -out server.key 1024

建立簽名請求的證書(CSR):
# openssl req -new -key server.key -out server.csr

在載入SSL支援的Nginx並使用上述私鑰時除去必須的口令:
# cp server.key server.key.org
# openssl rsa -in server.key.org -out server.key
最後標記證書使用上述私鑰和CSR:
# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

********************************************************************

第三步:開啟配置檔案 nginx.conf 

1.在配置檔案中,找到下面這段程式碼,把註釋給去掉,或者直接複製我下面這段程式碼進行修改也行。

  1. server {  
  2.        listen       443 ssl http2 default_server;  
  3.        listen       [::]:443 ssl http2 default_server;  
  4.        server_name  www.yydddd.cn;  
  5.        root         /usr/share/nginx/html;  
  6.        ssl_certificate "/etc/nginx/1_yydddd.cn_bundle.crt";  
  7.        ssl_certificate_key "/etc/nginx/2_yydddd.cn.key";  
  8.        ssl_session_cache shared:SSL:1m;  
  9.        ssl_session_timeout  10m;  
  10.        ssl_ciphers HIGH:!aNULL:!MD5;  
  11.        ssl_prefer_server_ciphers on;  
  12.        # Load configuration files for the default server block.
  13.        include /etc/nginx/default.d/*.conf;  
  14.        location / {  
  15.     proxy_pass http://xx/cz_manager/;
  16.     proxy_set_header Host $http_host;  
  17.                proxy_set_header X-Real-IP $remote_addr;  
  18.                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  19.        }  
  20.        error_page 404 /404.html;  
  21.            location = /40x.html {  
  22.        }  
  23.        error_page 500502503504 /50x.html;  
  24.            location = /50x.html {  
  25.        }  
  26.    }  

2.配置解析


3.配置完成後儲存,然後重啟(重新載入) nginx ,不然訪問不到

  1. xshell> nginx -s reload  

4.驗證

直接在瀏覽器輸入:https://www.yydddd.cn(請換成自己的域名)

能夠正常訪問到的話,就是配置 https 成功了。

四、nginx 強制使用 https 訪問

所謂強制使用 https 訪問,就是使用者使用 http 訪問的時候,直接轉到 https 訪問。

只需要修改 http 的配置即可:


重啟nginx

  1. xshell> nginx -s reload  

使用域名(例如:www.yyddd.cn)直接訪問的時候,直接跳轉到 https 訪問的話,就說明配置成功了。