1. 程式人生 > >阿里雲Centos7中nginx配置http轉https並轉發多tomcat

阿里雲Centos7中nginx配置http轉https並轉發多tomcat

環境

系統:阿里雲centos7
nginx版本:1.12.2
tomcat版本:8.5
jdk:8

準備

1.需要一個域名(可以用免費的或者買一個便宜點的)
2.系統及各種其他軟體

不足之處望指出,有更好的處理方式也希望能學習交流,謝謝。

獲取域名和免費的https證書

購買域名

  1. 搜尋想要的域名進行購買(便宜點的5-7塊一年,“.com”字尾的域名最貴)
  2. 購買完成後需要實名認證,按照步驟來即可。
  3. 完成實名認證後並且稽核通過後,域名即可使用 。

購買https證書

http轉https

下載https證書

  1. 點選我的證書頁面的 下載 連線,如下圖:
    在這裡插入圖片描述

  2. 在下載證書頁面選擇安裝https證書的伺服器後點擊下載,我這邊用的nginx做https轉發伺服器,tomcat跑具體專案,因此選擇的第一次,如下圖:
    在這裡插入圖片描述

  3. 下載證書後將其傳送到阿里雲centos7伺服器的下載檔案目錄存放。

下載安裝nginx

  1. cd /software 切換到存放下載檔案的目錄
  2. wget http://nginx.org/download/nginx-1.12.2.tar.gz 下載
  3. tar -zxvf nginx-1.12.2.tar.gz 解壓
  4. yum install pcre-devel zlib-devel gcc gcc-c++ openssl-devel -y 安裝nginx依賴庫
  5. ./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module
    設定安裝引數
  6. make && make install 編譯安裝

nginx安裝配置https證書

安裝完成後,編輯nginx中的conf下的nginx.conf檔案

#在nginx的https server位置加如下配置

 #設定websocket代理伺服器
 upstream websocket {
        server localhost:8080;
  }

server {
    listen 443; #監聽的埠
    server_name localhost; 
    #開啟ssl驗證
    ssl on; 
    root html;
    index index.html index.htm;
    #證書位置
    ssl_certificate   cert/214944315780656.pem;
    #證書祕鑰位置
    ssl_certificate_key  cert/214944315780656.key;
    #ssl會話超時時間
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

	#根據專案名稱代理跳轉具體的專案
    location /eosp {
    	#代理跳轉地址
        proxy_pass http://websocket/eosp;
        #設定代理的host資訊(websocket時因為後面少加了埠,導致wss一直連不上,花了很長時間)
        proxy_set_header Host $host:$server_port;
        proxy_http_version 1.1;
        #設定可以代理websocket
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
    }

    location / {
        root html;
        index index.html;
    }
}

  1. http server下加如下配置,使http自動轉https訪問
		#重定向到https
        rewrite ^(.*)$  https://$host$1 permanent;
  1. 這裡可以根據域名後面的名稱跳轉具體的專案或者伺服器

多Tomcat配置

cd /software 切換到下載檔案存放目錄
wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz 下載tomcat
tar -zxvf apache-tomcat-8.0.53.tar.gz 解壓tomcat
mv apache-tomcat-8.0.53 tomcat8.5 修改解壓後的tomcat資料夾名稱
mv -r tomcat8.5 /usr/local/tomcat 移動tomcat資料夾到/usr/local/tomcat目錄下,沒有tomcat目錄 mkdir /usr/local/tomcat 新建後再移動
cd /usr/local/tomcat 切到tomcat目錄
在tomcat目錄拷貝三個tomcat8.5並更名分別為tomcat-8080、tomcat-9000、tomcat-8090

vim /etc/profile 編輯配置檔案
增加如下配置(建議增加在末尾處)

#tomcat1配置
TOMCAT_HOME_8090=/usr/tomcat/tomcat-8090
CATALINA_HOME_8090=/usr/tomcat/tomcat-8090
CATALINA_BASE_8090=/usr/tomcat/tomcat-8090
export  TOMCAT_HOME_8090  CATALINA_HOME_8090 CATALINA_BASE_8090

#tomcat2配置
TOMCAT_HOME=/usr/tomcat/tomcat-8080
CATALINA_HOME=/usr/tomcat/tomcat-8080
CATALINA_BASE=/usr/tomcat/tomcat-8080
export  TOMCAT_HOME  CATALINA_HOME CATALINA_BASE

#tomcat3配置
TOMCAT_HOME_9000=/usr/tomcat/tomcat-9000
CATALINA_HOME_9000=/usr/tomcat/tomcat-9000
CATALINA_BASE_9000=/usr/tomcat/tomcat-9000
export  TOMCAT_HOME_9000  CATALINA_HOME_9000 CATALINA_BASE_9000

source /etc/profile 讓配置檔案立即生效
修改tomcat的關閉啟動檔案
作用:tomcat的關閉檔案沒修改的時候會將所有的tomcat關閉,為關閉指定tomcat不影響其他的tomcat,因此需要增加一些引數
startup.sh修改如下

需要在exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"前增加如下配置

export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目錄
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_HOME_9000  

#注意這裡關聯的是profile中剛剛設定的環境變數名(不同的tomcat變數名稱不一樣)
export CATALINA_BASE=$CATALINA_BASE_9000 #注意這裡關聯的是profile中剛剛設定的環境變數名(不同的tomcat變數名稱不一樣)
shutdown.sh修改如下

需要在exec "$PRGDIR"/"$EXECUTABLE" start "[email protected]"前增加如下配置

export JAVA_HOME=/usr/jdk/jdk1.7.0_80  #jdk的目錄
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export CATALINA_HOME=$CATALINA_HOME_9000 

#注意這裡關聯的是profile中剛剛設定的環境變數名(不同的tomcat變數名稱不一樣)
export CATALINA_BASE=$CATALINA_BASE_9000#注意這裡關聯的是profile中剛剛設定的環境變數名(不同的tomcat變數名稱不一樣)

注意埠號需要在tomcat下面的conf資料夾中修改server.xml

修改埠號的地方為以前是8080現在被改成了9000

    <Connector port="9000" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

光修改埠號可不行還需要修改的配置如下

這裡原始的是8005被修改成了8007(因為這裡存在3個tomcat所以現在被修改成了8007)

<Server port="8007" shutdown="SHUTDOWN">

這裡原始的是8009被修改成了8011(因為這裡存在3個tomcat所以現在被修改成了8011)

<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

以上條件滿足的是不同的tomcat都需要修改以上配置且不能相同,如果tomcat啟動不報錯就算完成了

注意:改配置檔案的user配置可能與自己配的不一致

至此核心步驟基本都記錄了,有不當之處望指正。