在同一台服务器上配置app1.domain.com和app2.domain.com多个web应用

自己第一次配置nginx,过程中参考这里。这篇文章就当自己的一个笔记把过程记录下来。

目的

有一台阿里云服务器和自己的域名(jackyang.me),想要在服务器上部署多个node express应用:blog和game。但是又不希望在访问时通过端口号来区分不同的应用(例如:jackyang.me:3000为blog应用,jackyang.me:3001为game应用)。那么就可以使用nginx来完成,访问时都通过默认的80端口,根据域名的不同,在nginx里转发到各自的应用中去。

安装nginx

Please google it.
运行一下,在浏览器中输入jackyang.me,如果看到这个画面,你就装好了。

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的启动配置中引入上面创建的两个配置文件:

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

在http块中添加一条include语句即可:

...
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这两条记录。一下是我在阿里云中的配置:

图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值