前言
前幾天組內(nèi)接了個(gè)新項(xiàng)目,沒有g(shù)it地址,沒有數(shù)據(jù)庫,沒有測試環(huán)境,一切都要從頭開始。這個(gè)項(xiàng)目運(yùn)行的環(huán)境是windows系統(tǒng),tomcat 容器,于是我們先在自己的電腦上試一試搭建環(huán)境。我們的項(xiàng)目有兩個(gè)后端、兩個(gè)前端。
一、tomcat容器搭建
1.下載安裝tomcat
官網(wǎng)下載tomcat,也可網(wǎng)盤自取。
鏈接:https://pan.baidu.com/s/1rniAr6pykcKLQ3ld9rfP7Q
提取碼:u1cm
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
下載下來之后,解壓。放在任一磁盤,記住存放位置。接下來就是配置環(huán)境變量了。
2.配置環(huán)境變量
打開環(huán)境變量,在系統(tǒng)變量中點(diǎn)擊“新建”,變量名填寫:
CATALINA_HOME
變量值填寫剛剛解壓的tomcat存放路徑。
接著再點(diǎn)擊“新建”,變量名填寫:
CATALINA_BASE
變量值填寫解壓后的tomcat存放路徑。
然后選中系統(tǒng)變量中的Path變量,點(diǎn)擊“編輯”,打開編輯窗口,再點(diǎn)擊“編輯文本”,在末尾加上
%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
點(diǎn)擊“確定”,一路返回。
環(huán)境變量就配置好了,我們可以通過啟動(dòng)tomcat服務(wù)器看有沒有配成功。啟動(dòng)tomcat有兩種方法。
第一種,進(jìn)入tomcat目錄下,進(jìn)入bin目錄,雙擊startup.bat文件。
第二種,win+r 輸入cmd 打開DOS窗口,進(jìn)入tomcat下的bin目錄,輸入startup.bat回車,就可以啟動(dòng)tomcat了。
接下來在瀏覽器地址欄輸入
localhost:8080
如果出現(xiàn)一只湯姆貓的頁面,恭喜你,tomcat啟動(dòng)成功啦。
剛剛說了我們有兩個(gè)后端服務(wù)。所以我在電腦上裝了兩個(gè)tomcat。
將剛才解壓的tomcat再復(fù)制一份。不要單純的以為進(jìn)入bin目錄,雙擊startup.bat文件就可以啟動(dòng)這個(gè)服務(wù)了,這樣啟動(dòng)的還是第一個(gè)tomcat的服務(wù)。
怎樣做才能啟動(dòng)第二個(gè)tomcat服務(wù)呢?
還是配置環(huán)境變量。新建第一個(gè)變量:
變量名:CATALINA_HOME1
變量值:第二個(gè)tomcat的存放目錄
新建第二個(gè)變量:
變量名:CATALINA_BASE1
變量值:第二個(gè)tomcat的存放目錄
接著編輯path變量的值,在末尾加上:
%CATALINA_HOME1%\lib;%CATALINA_HOME1%\bin;
最后,到bin目錄下,修改所有的批處理文件。咋修改呢?將所有的“CATALINA_HOME”,替換成“CATALINA_HOME1”。所有的“CATALINA_BASE”,替換成 “CATALINA_BASE2”。每一個(gè)批處理文件,都修改保存。
最后,還要去conf目錄下修改server.xml文件。主要是修改3個(gè)端口。這三個(gè)端口不能重復(fù),也不能和第一個(gè)tomcat的3個(gè)端口重復(fù)。
#關(guān)閉tomcat通信接口
<Server port="7005" shutdown="SHUTDOWN">
#建立http連接 用,如瀏覽器訪問
<Connector port="7070" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
#與其他http服務(wù)器通信接口,用于http服務(wù)器集合
<Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />
修改后保存,這樣再啟動(dòng)startup.bat,就是第二個(gè)tomcat服務(wù)了。
兩個(gè)tomcat都配置好之后,將對(duì)應(yīng)的后端war包,拷貝到對(duì)應(yīng)的tomcat的webapps目錄下。tomcat啟起來之后會(huì)自動(dòng)解壓這個(gè)war包。
二、nginx按照部署
1.下載地址
windows版的nginx安裝包,網(wǎng)盤自取:
鏈接:https://pan.baidu.com/s/1Ofjst6JU69OzxRxqfEv_Uw
提取碼:ndgk
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
下載后解壓即可使用。
2.啟動(dòng)nignx
解壓后,有2種方式進(jìn)行啟動(dòng):
一、進(jìn)入nginx目錄,雙擊nginx.exe圖標(biāo),可見黑窗口一閃而過,啟動(dòng)完畢。
二、命令行進(jìn)入到nginx目錄,輸入start nginx啟動(dòng)。
然后打開瀏覽器輸入localhost:80,出現(xiàn)nginx歡迎頁面,說明配置沒問題啟動(dòng)成功了。
3.配置
nignx的配置文件默認(rèn)路徑為:/conf/nginx.conf
Nginx默認(rèn)端口是80,現(xiàn)在要通過nginx來反向代理后端的端口為8080的tomcat,配置如下
//訪問第一個(gè)后端服務(wù)的配置
server {
listen 8112;//nginx端口號(hào)
server_name region.his.sso.com;//server名稱
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root D:/code/region-his-sso-front;//前端資源地址
index index.html index.htm;
#proxy_pass http://sso_server;
}
location /api/ {
proxy_pass http://127.0.0.1:8080/his-sso/api/;
//proxy_pass 代理的tomcat的地址(ip+端口或者域名)
//后端服務(wù)地址
}
}
//訪問第二個(gè)后端服務(wù)的配置
server {
listen 8111;
server_name region.his.aers.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root D:/code/region-his-aers-front/dist;
index index.html index.htm;
#proxy_pass http://aers_server;
}
location /api/ {
proxy_pass http://127.0.0.1:7070/his-aers/;
}
}
再配置一下host:
127.0.0.1 region.his.sso.com
127.0.0.1 region.his.aers.com
修改好配置文件之后保存,命令行輸入nginx -s reload重新加載nginx。
常用的命令:
nginx -v 查看nginx版本
start nginx啟動(dòng)nginx命令
nginx -s reload 修改了配置文件后重新reload
nginx -s stop 立刻停止
nginx -s quit 優(yōu)雅地停止
4.瀏覽器訪問
在地址欄輸入:region.his.sso.com:8112
,就可以訪問前端頁面了。
前端代碼中配置了跳轉(zhuǎn)鏈接http://region.his.aers.com:8111
,登錄上去之后,就可以跳到第二個(gè)前端服務(wù)的頁面,第一個(gè)前端就是登錄頁面。
三、問題與思考
配置兩個(gè)tomcat太麻煩了,有沒有辦法通過一個(gè)tomcat啟動(dòng)兩個(gè)web應(yīng)用呢?當(dāng)然有啦~步驟如下:
1.Tomcat的解壓文件目錄下的conf文件夾中找到server.xml文件
2.找到server.xml文件的最底部的</Service>和</Server>標(biāo)簽
</Service>
</Server>
3.上圖兩個(gè)標(biāo)簽之間添加下圖代碼
<Service name="Catalina">
<!--1.修改port為想要的訪問端口號(hào),不能與已有的8080重復(fù) -->
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--2.修改port為想要的端口號(hào),不能與已有的8009重復(fù) -->
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<!--3.修改appBase的值,值不能與已有的webapps重復(fù) -->
<Host name="localhost" appBase="webapps2" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
<!--4.修改path和docBase為需要啟動(dòng)的第二個(gè)項(xiàng)目名 -->
<Context path="/項(xiàng)目名" reloadable="true" docBase="/項(xiàng)目名"/>
</Host>
</Engine>
</Service>
4.做完以上修改保存后,返回Tomcat根目錄新建一個(gè)文件夾(注:該新建文件夾的命名必須和第三步驟3處的appBase的值保持一致,我這里的是webapps2,即文件的命名是webapps2)
5.將需要啟動(dòng)的兩個(gè)項(xiàng)目war包分別放入webapps和webapps2文件夾中(各放一個(gè)),直接啟動(dòng)Tomcat
6.用Tomcat默認(rèn)的端口(8080)和剛才添加的第三步驟中1處的端口(8081)就可以分別訪問兩個(gè)項(xiàng)目
網(wǎng)上說還可以在Host中新增Context,一個(gè)Context代表一個(gè)項(xiàng)目,沒有實(shí)踐過,以后有機(jī)會(huì)再試一試。