要使用Nginx代理Restify创建的Webapp,首先要在我们的服务器上安装Nginx,下载Restify模块(本例不介绍安装NodeJs)并创建WebApp,使用Nginx代理。
Part Ⅰ:
在安装Nginx时,直接执行apt-get install nginx,如果自带的软件源中包含nginx即可安装成功,如果自带的软件源中没有包含nginx,则手动执行apt-add-repository ppa:nginx/development 添加软件源后执行apt-get install nginx。
安装成功后,执行命令:$sudo /etc/init.d/nginx start将nginx服务器开启。出现如下提示则开启成功。
当Nginx服务开启成功时,我们可以使用ifconfig查看该机器(虚拟机)的ip地址,如下图:
当我们查完ip地址之后可以通过拷贝ip地址到浏览器或者执行命令wget http:xxx.xxx.xxx.xxx,如果出现以下两种图片所示,即为Nginx开启服务成功。
注意:如果是在虚拟机上配置的Nginx,使用命令行在虚拟机上可以使用wget得到响应,在宿主机无法使用浏览器访问时可能有以下两种情况:
1、虚拟机自带的iptables防火墙开启了,我们应该将它关闭。以Ubuntu为例:ufw disable。
2、如果使用VirtualBox或者VMWare等启动的虚拟机,在网络设置时为了省事不要使用NAT方式,方法是将网络连接方式改为桥接。如使用NAT方式设置,可参考NAT。
Part Ⅱ:
当服务器有了NodeJs,我们可能还需要安装NodeJs的Restify模块,Restify是NodeJs的一个开发框架,我们安装了Restify之后可以在NodeJs文件中引用。
安装Restify的方法也比较简单,当服务器上安装了NodeJs之后,可以直接使用NodeJs带的npm命令执行npm install restify(前提npm命令配置了全局),如果没设置全局的话,要手动cd到/home/kun/mysofltware/node-v0.10.28-linux-x64/bin/文件夹下执行npm install restify命令。上述/home/kun/mysofltware/node-v0.10.28-linux-x64是我机器的安装目录,在配置时应注意替换。出现下图显示的类似内容,则表示安装成功。
Part Ⅲ:
使用restify创建最简单的WebApp。
vim test.js
var restify = require('restify');
var ip_addr = '127.0.0.1';
var port = '3000';
var server = restify.createServer({
name : "myapp"
});
server.listen(port ,ip_addr, function(){
console.log('%s listening at %s ', server.name , server.url);
});
保存运行该js文件时输出:myapp listening athttp://127.0.0.1:3000
或者向下图中实例一样:
Part Ⅳ:
使用Nginx反向代理NodeJs文件。主要是需要修改Nginx的配置文件,一般位于/etc/nginx/文件夹下。
vim /etc/nginx/nginx.conf
在http标签下添加:
server{
listen 80;
server_name 192.168.1.114;
location /{
proxy_pass 192.168.1.114:3000;
}
}
配置完成后保存,重启Nginx,通过该配置,访问Nginx地址http://192.168.1.114(:80)/的请求会被转发到my_server服务地址http://192.168.1.114:3000/。