阿里雲Centos7中nginx配置http轉https並轉發多tomcat
環境
系統:阿里雲centos7
nginx版本:1.12.2
tomcat版本:8.5
jdk:8
準備
1.需要一個域名(可以用免費的或者買一個便宜點的)
2.系統及各種其他軟體
不足之處望指出,有更好的處理方式也希望能學習交流,謝謝。
獲取域名和免費的https證書
購買域名
- 搜尋想要的域名進行購買(便宜點的5-7塊一年,“.com”字尾的域名最貴)
- 購買完成後需要實名認證,按照步驟來即可。
- 完成實名認證後並且稽核通過後,域名即可使用 。
購買https證書
http轉https
下載https證書
-
點選我的證書頁面的 下載 連線,如下圖:
-
在下載證書頁面選擇安裝https證書的伺服器後點擊下載,我這邊用的nginx做https轉發伺服器,tomcat跑具體專案,因此選擇的第一次,如下圖:
-
下載證書後將其傳送到阿里雲centos7伺服器的下載檔案目錄存放。
下載安裝nginx
cd /software
切換到存放下載檔案的目錄wget http://nginx.org/download/nginx-1.12.2.tar.gz
下載tar -zxvf nginx-1.12.2.tar.gz
解壓yum install pcre-devel zlib-devel gcc gcc-c++ openssl-devel -y
安裝nginx依賴庫./configure --prefix=/usr/local/bin/nginx --with-http_stub_status_module --with-http_ssl_module
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; } }
- http server下加如下配置,使http自動轉https訪問
#重定向到https
rewrite ^(.*)$ https://$host$1 permanent;
- 這裡可以根據域名後面的名稱跳轉具體的專案或者伺服器
多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配置可能與自己配的不一致
至此核心步驟基本都記錄了,有不當之處望指正。