180602-nginx多域名配置
阿新 • • 發佈:2018-06-03
圖片 container 訂閱 AI toc edi css aes pan
文章鏈接:https://liuyueyi.github.io/hexblog/2018/06/02/180602-nginx多域名配置/
nginx多域名配置
原來的域名過期了,重新買了一個hhui.top
,正好重新的配置一下,針對之前寫過的幾個不同的東西,通過不同的子域名來進行區分,因此簡單記錄一下nginx的多域名配置
I. 域名配置
1. 背景
因為資金有限,只有一臺服務器,但是這個服務器上幹的事情卻不止一件,當前的狀況是有下面幾個
- zweb : 一個多媒體工具網站,前端ReactJS寫的,獨立打包;後端為java部署在Tomcat中的應用media
- mweb : 古詩詞wap網,每天推薦12首經典古詩詞;前端ReactJS編寫,獨立打包;後端Java部署在Tomcat中的應用Story
- media:多媒體處理應用,Git開源,實現圖片編輯, 二維碼, markdown,svg渲染,html渲染,音頻編輯等功能
- Story: 古詩詞的後端,提供古詩詞查詢,檢索推薦和訂閱等基本功能,未開源
- 一灰灰Blog 基於Hexblog搭建的個人博客
所以這臺服務器上,從應用角度出發,有五個不同的功能的服務,主要區分為兩類:
- 靜態的html前端頁面
- 部署在Tomcat上的Java應用
2. 域名配置
五個服務,會配置五個不同的子域名:
- 將前端靜態頁面,在服務器上放在不同的目錄下,不通的域名,映射到不同的目錄
- Tomcat暴露8080端口,不同的應用放在webapps下不同的目錄
a. 域名與文件映射
拿簡單的 zweb 和 mweb 來設置,直接映射即可
server {
listen 443 ssl;
server_name zweb.hhui.top;
# https 證書配置
ssl_certificate zwebcert/1529370953598.pem;
ssl_certificate_key zwebcert/1529370953598.key;
ssl_session_cache shared:SSL:1m;
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_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /tmp/html/zweb;
}
server {
listen 443 ssl;
server_name mweb.hhui.top;
# https 證書配置
ssl_certificate zwebcert/1529370953598.pem;
ssl_certificate_key zwebcert/1529370953598.key;
ssl_session_cache shared:SSL:1m;
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_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /tmp/html/mweb;
}
簡單來講,一個子域名對應一個配置項,設置其中的server_name
為目標域名
然後就是設置root,映射到不同的前端地址即可
b. 博客配置映射
個人博客雖然也是靜態頁面,但是不太一樣的是博客的源碼托管在git上,並借助了github的page服務,因此實際訪問的域名會多一個後綴,如
https://liuyueyi.github.io/hexblog/
所以如果直接用上面的方法,會導致js和css文件404,主要是因為借助hexo搭建博客時,指定了path路徑,所以要做一個簡單的域名匹配
server {
listen 443 ssl;
server_name blog.hhui.top;
ssl_certificate blogcert/1529816324478.pem;
ssl_certificate_key blogcert/1529816324478.key;
ssl_session_cache shared:SSL:1m;
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_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /tmp/html/blog;
location = / {
index index.html;
rewrite ^(.*)$ /hexblog/ break;
}
location / {
root /tmp/html/blog;
}
}
上面的配置,相比較前面的,主要就是攔截了下默認的首頁,強制跳轉到指定的目錄下
c. Tomcat代理
server {
listen 443 ssl;
server_name media.hhui.top;
ssl_certificate mediacert/1528000080078.pem;
ssl_certificate_key mediacert/1528000080078.key;
ssl_session_cache shared:SSL:1m;
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_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /tmp/html/media/;
location / {
proxy_pass http://media.hhui.top:8080/media/;
proxy_redirect default;
}
}
常見的代理轉發配置了,nginx作為代理,將請求轉發到Tomcat,也就那麽一個簡單的配置,主要利用的是 proxy_redirect
II. 小結
主要記錄一個簡單的配置,關於nginx詳細的配置相關,之前寫過一個博文,加上友情鏈接
- Nginx-路由轉發配置筆記/
上面配置體驗:
- https://blog.hhui.top/
- https://zweb.hhui.top/
- https://mweb.hhui.top/
III. 其他
一灰灰Blog: https://liuyueyi.github.io/hexblog
一灰灰的個人博客,記錄所有學習和工作中的博文,歡迎大家前去逛逛
聲明
盡信書則不如,已上內容,純屬一家之言,因個人能力有限,難免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激
- 微博地址: 小灰灰Blog
- QQ: 一灰灰/3302797840
掃描關註
180602-nginx多域名配置