在前面一篇中說過, 入了好幾個坑. 后來使用了nginx+tomcat配置的方式. 終於成功了. 因為頭一次使用nginx, 不知道具體怎么操作, 於是我在操作的時候, 按照以下幾個步驟執行的:
導航
第一步. tomcat啟動, 可以訪問tomcat啟動頁. 通過ip地址+端口號在瀏覽器訪問, 看是否能夠訪問到啟動頁.
第二步: 在nginx.conf配置第一個域名, 比如說是www.aaa.com, 讓域名映射到tomcat端口里, 然后在瀏覽器訪問這個域名, 看是否能夠看到tomcat啟動頁.
第三步: 在nginx.conf中配置第二個域名, 比如說www.bbb.com, 因為第一個域名成功訪問了, 第二個域名就很簡單了, copy patse就可以了.
第四步: 結果是兩個域名都能跳轉到tomcat啟動頁, 使用ip地址+端口號訪問也可以跳轉到啟動頁.
這之前tomcat沒有做任何的修改, 就是原tomcat包, 解壓, 啟動.
第五步: 配置每個域名對應一個tomcat項目. 配置的時候也是一個一個配置, 保證一個成功了, 再配另一個.
----------------------------------------------------------
詳細步驟:
第一步: 解壓tomcat, 修改配置文件server.xml, 將8080端口改為默認端口80. 這樣通過域名訪問的時候不用輸入端口號. 改完直接啟動.
修改server.xml端口
通過ip訪問, 能夠進入到tomcat啟動頁
第二步: 配置nginx. 這里有包含好幾步, 如下:
參考文章: https://www.cnblogs.com/beyang/p/7718463.html
1. 首先購買https,獲取到CA證書,兩個域名就得到兩套證書
2. 現在就是Nginx和OpenSSL的安裝與配置(這里注意,一般情況下一個IP只支持一個SSL證書,那么我們現在要在一個IP上實現多個SSL證書,就必須讓Nginx支持TLS SNI,由於默認的OpenSSL是沒有打開TLS SNI的)
1)Nginx支持多域名SSL證書是需要OpenSSL庫支持的,CentOS5.X的OpenSSL庫本身不支持這種特性,需要重新下載編譯,步驟如下:
wget https://www.openssl.org/source/old/0.9.x/openssl-0.9.8zh.tar.gz
tar zxvf ./openssl-0.9.8zh.tar.gz
2)下載Nginx,進行配置
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/usr/local/nginx1.8.0 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=../openssl-0.9.8zh
(此處會報錯:出現pcre庫沒找到或zlib沒找到,
在CentOS下可以使用 yum -y install pcre-devel zlib-devel 進行安裝缺失的組件)
make && make install
3)檢查Nginx狀態
/usr/local/nginx1.8.0/sbin/nginx -V
得到如下結果就說明配置好了:
nginx version: nginx/1.8.0
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
built with OpenSSL 0.9.8zh 3 Dec 2015
TLS SNI support enabled #可以看到TLS SNI support打開了
configure arguments: --prefix=/usr/local/nginx1.8.0 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=../openssl-0.9.8zh
4. 配置Nginx 應用服務器(這一步和參考文章不完全一樣)
安裝nginx以后, nginx會安裝在/usr/local/nginx-1.8.0下.
證書放置到 Nginx/conf/cert 目錄下
(這里有一個坑: 西部數據上說, 配置nginx的時候要復制crt的全部內容,放在cer頭部, 但是我這樣做了, 確提示說密碼錯誤. 直接將cer放作為秘鑰文件, 不報錯)
nginx.conf文件如下
啟動Nginx:報錯-
nginx: [emerg] getpwnam(“www”) failed錯誤
錯誤的原因是沒有創建www這個用戶,應該在服務器系統中添加www用戶組和用戶www,如下命令:
#/usr/sbin/groupadd -f www
#/usr/sbin/useradd -g www www
然后通過域名訪問, 看是否能跳轉到localhost:80里去. OK, 在配置下一個域名.
第三步: 配置第二個域名, 配置方法和前一個一模一樣, 在nginx.xml中復制一份server,修改對應的域名即可. 然后訪問域名, 看是否能夠跳轉到localhost:80里去.
到目前為止, 可以通過ip地址, 兩個域名訪問到tomcat了. 也就是, 可以2個域名都可以訪問到項目了.
第四步: 配置tomcat中的host. 我這里還沒有配置. 后續補充
其他配置默認就可以.