在同一臺服務器上配置app1.domain.com和app2.domain.com多個web應用

本身第一次配置nginx,過程當中參考這裏。這篇文章就當本身的一個筆記把過程記錄下來。node

目的

有一臺阿里雲服務器和本身的域名(jackyang.me),想要在服務器上部署多個node express應用:blog和game。可是又不但願在訪問時經過端口號來區分不一樣的應用(例如:jackyang.me:3000爲blog應用,jackyang.me:3001爲game應用)。那麼就能夠使用nginx來完成,訪問時都經過默認的80端口,根據域名的不一樣,在nginx裏轉發到各自的應用中去。nginx

安裝nginx

Please google it.
運行一下,在瀏覽器中輸入jackyang.me,若是看到這個畫面,你就裝好了。express

sudo /usr/local/nginx/sbin/nginx

圖片描述

建立blog應用的配置文件

sudo mkdir /etc/nginx/jackyang.me
sudo touch /etc/nginx/jackyang.me/blog.conf

其配置文件內容以下:瀏覽器

# upstream name is blog.jackyang.me
# and my blog express app is running under port 3000
upstream blog.jackyang.me {
    server 127.0.0.1:3000;
    keepalive 8;
}

# the nginx server instance 
server {
    listen 0.0.0.0:80;
    server_name blog.jackyang.me;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      # value for proxy_pass has to match upstream name
      proxy_pass http://blog.jackyang.me/;
      proxy_redirect off;
    }
 }

建立game應用的配置文件

sudo touch /etc/nginx/jackyang.me/game.conf

其配置文件內容以下:服務器

# upstream name is blog.jackyang.me
# and my blog express app is running under port 3000
upstream game.jackyang.me {
    server 127.0.0.1:3001;
    keepalive 8;
}

# the nginx server instance 
server {
    listen 0.0.0.0:80;
    server_name game.jackyang.me;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      # value for proxy_pass has to match upstream name
      proxy_pass http://game.jackyang.me/;
      proxy_redirect off;
    }
 }

修改nginx配置

下面須要在nginx的啓動配置中引入上面建立的兩個配置文件:app

sudo vi /usr/local/nginx/conf/nginx.conf

在http塊中添加一條include語句便可:google

...
http {
    ...
    include /etc/nginx/jackyang.me/*.conf;
    ...
}
...

啓動nginx

sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

啓動blog和game應用

這裏須要提早裝node的forever,以避免terminal退出後服務器進程就停掉了。而且要按照上面配置的,blog運行在3000端口,game運行在3001端口上。阿里雲

forever start /var/www/jackyang.me/blog/server.js
forever start /var/www/jackyang.me/game/server.js

配置域名解析

要能經過blog.jackyang.me和game.jackyang.me訪問對應的應用,還差最後一步,即在域名解析中添加和啓用blog和game這兩條記錄。一下是我在阿里雲中的配置:spa

圖片描述

相關文章
相關標籤/搜索