怎么在linux ubuntu 上的nginx 绑定域名

前一篇介绍了,如果在ubuntu上运行nodejs,毕竟访问的时候都是用ip地址+端口号,但是上production 环境都需要域名的,IP地址当然不行

读过上一篇的朋友知道了,如果在upstart 或者 systemd中运行 nodejs. 但是upstart是一个job,systemd是一个service,他们都无法绑定域名,前一篇都分别给他们建立了二个实例。这样可以做负载,而且当一个实例坏掉了可以马上切换。好了,现在需要绑定域名,这个时候我们可以nginx ,轻松达到。

 

登陆到你的云服务器

 

 

登陆了之后,我们需要网点部署到nginx上面,前面一篇2文章提到,我们建立了2个实例,一个是5000端口,一个是5001端口,用nginx 可以做负载。

 

准备configuration

upstream node_server {
server 127.0.0.1:3000 fail_timeout=0;
   server 127.0.0.1:5000 fail_timeout=0;
   server 127.0.0.1:5001 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default_server;

    index index.html index.htm;

    server_name  www.abc.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_buffering off;
        proxy_pass http://node_server;
    }

    location /public/ {
        root /opt/app;
    }
}
View Code


我们一般都需要把端口号设置成80的,server_name 就是我们需要设置的域名 (如 www.abc.com),根据你自己的实际进行配置,上面三个节点3000,5000和5001都是upstart上的实例,可以做负载均衡和错误转移
将上面的配置文件内容放入/etc/nginx/sites-available/node-app 文件中,然后在linux shell 中运行命令:

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/node-app /etc/nginx/sites-enabled/node-app
sudo /etc/init.d/nginx restart

删除默认的配置,用上面的配置文件代替。然后用restart启动服务nginx,运行正常,大功告成!

 

posted on 2017-04-19 12:38  张江style  阅读(1798)  评论(0编辑  收藏  举报

导航