最近想把三個項目配在一個服務(wù)器上床蜘,于是想使用nginx配置二級域名實現(xiàn)辙培。
1.域名添加解析
我的是阿里云的域名,所以首先給自己的域名添加解析邢锯。
打算使用www.codeliu.com, test1.codeliu.com, test2.codeliu.com這三個域名扬蕊,其中 test1.codeliu.com, test2.codeliu.com作為二級域名。
2.準(zhǔn)備好三個項目
eclipse新建三個web項目弹囚,直接在index.html中寫一點東西能進行區(qū)別進行厨相,然后export成war包,傳到服務(wù)器的tomcat webapp目錄下鸥鹉。
3.配置nginx
為了方便蛮穿,我就直接在nginx.conf進行配置了,沒有重新起配置文件毁渗,如果想重新起配置文件践磅,可以在nginx.conf使用include進行包含就行。
vim /usr/local/nginx/conf/nginx.conf
使用上面的命令編輯nginx的配置文件灸异,先把配置文件中的server注釋掉府适,然后添加下面的語句
server {
listen 80;
server_name www.codeliu.com;
location / {
root /usr/lib/apache-tomcat-8.5.33/webapps/CodeliuDemo;
index index.html index.htm;
}
}
server {
listen 80;
server_name test1.codeliu.com;
location / {
root /usr/lib/apache-tomcat-8.5.33/webapps/Test1Demo;
index index.html index.htm;
}
}
server {
listen 80;
server_name test2.codeliu.com;
location / {
root /usr/lib/apache-tomcat-8.5.33/webapps/Test2Demo;
index index.html index.htm;
}
}
重啟nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
這樣配置就完成了,輸入不同的網(wǎng)站就可以顯示不同的項目肺樟。
4.遇到的問題
在配置完成之后檐春,訪問出現(xiàn)了403。
4.1 首先看看是否有index文件
檢查后發(fā)現(xiàn)都有么伯,應(yīng)該不是這個原因疟暖。
4.2 再檢查是否是文件夾的權(quán)限問題
chmod -R 777
使用上面的命令后還是不行。
4.3 檢查啟動用戶和nginx工作用戶是否一致
修改nginx.conf的第一行田柔,改成下面這樣
user root;
重啟nginx俐巴,訪問正常。
2018-11-21 15:21再次更新
試了試發(fā)現(xiàn)訪問動態(tài)項目是404硬爆,所以決定一個項目使用一個tomcat欣舵,分配不同的端口,這樣一個tomcat掛了不會影響其他的項目缀磕。
所以解壓了三個tomcat缘圈,分別對應(yīng)8080,8081,8082端口劣光。修改tomcat的server.conf達(dá)到修改端口的目的。要改三個地方
<!-- 這里我把8005改成8006 -->
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- 這里我把8080改成8081 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 這里我把8009改成8010 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
重啟三個tomcat
修改nginx.conf(上面已經(jīng)配置過糟把,直接在此基礎(chǔ)上修改)
server {
listen 80;
server_name www.qidaochina.com;
location / {
proxy_pass http://127.0.0.1:8081;
index index.html index.htm;
}
}
server {
listen 80;
server_name ccmp.qidaochina.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
server {
listen 80;
server_name xwgk.qidaochina.com;
location / {
proxy_pass http://127.0.0.1:8082;
index index.html index.htm;
}
}
其實就是把root改成了proxy_pass赎线。這樣就能把請求轉(zhuǎn)發(fā)到對應(yīng)的tomcat去處理。
本來想直接把項目名改成ROOT(tomcat的默認(rèn)顯示項目)糊饱,但發(fā)現(xiàn)報錯500,于是放棄了這種想法颠黎,而是更改ROOT下面的index.jsp.
<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
</head>
<body>
<script type="text/javascript">
window.location.href="../CodeliuDemo/index.html";
</script>
</body>
</html>
這樣就ok了另锋。