180602-nginx多域名配置

文章連接:https://liuyueyi.github.io/hexblog/2018/06/02/180602-nginx多域名配置/css

nginx多域名配置

原來的域名過時了,從新買了一個hhui.top,正好從新的配置一下,針對以前寫過的幾個不一樣的東西,經過不一樣的子域名來進行區分,所以簡單記錄一下nginx的多域名配置html

I. 域名配置

1. 背景

由於資金有限,只有一臺服務器,可是這個服務器上乾的事情卻不止一件,當前的情況是有下面幾個前端

  • zweb : 一個多媒體工具網站,前端ReactJS寫的,獨立打包;後端爲java部署在Tomcat中的應用media
  • mweb : 古詩詞wap網,天天推薦12首經典古詩詞;前端ReactJS編寫,獨立打包;後端Java部署在Tomcat中的應用Story
  • media:多媒體處理應用,Git開源,實現圖片編輯, 二維碼, markdown,svg渲染,html渲染,音頻編輯等功能
  • Story: 古詩詞的後端,提供古詩詞查詢,檢索推薦和訂閱等基本功能,未開源
  • 一灰灰Blog 基於Hexblog搭建的我的博客

因此這臺服務器上,從應用角度出發,有五個不一樣的功能的服務,主要區分爲兩類:java

  1. 靜態的html前端頁面
  2. 部署在Tomcat上的Java應用

2. 域名配置

五個服務,會配置五個不一樣的子域名:nginx

  • 將前端靜態頁面,在服務器上放在不一樣的目錄下,不通的域名,映射到不一樣的目錄
  • Tomcat暴露8080端口,不一樣的應用放在webapps下不一樣的目錄

a. 域名與文件映射

拿簡單的 zweb 和 mweb 來設置,直接映射便可git

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爲目標域名github

而後就是設置root,映射到不一樣的前端地址便可web

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詳細的配置相關,以前寫過一個博文,加上友情連接

上面配置體驗:

III. 其餘

一灰灰Blog: https://liuyueyi.github.io/hexblog

一灰灰的我的博客,記錄全部學習和工做中的博文,歡迎你們前去逛逛

聲明

盡信書則不如,已上內容,純屬一家之言,因我的能力有限,不免有疏漏和錯誤之處,如發現bug或者有更好的建議,歡迎批評指正,不吝感激

掃描關注

 
相關文章
相關標籤/搜索