Page 150 - Node.js开发指南
P. 150
6.3 Node.js 应用部署 143
它的功能是通过nohup 启动服务器,使进程不会因为退出终端而关闭,同时将主进程 1
的pid 写入microblog.pid 文件。当调用结束命令时,从microblog.pid 读取pid 的值,终止主
进程以关闭服务器。
运行./microblog start,结果如下:
2
Starting Microblog:
Microblog.
在该目录下生成了microblog.pid 文件,查看进程表可以发现服务器已经启动。关闭服务器时
只需执行./microblog stop,即可结束所有工作进程。
3
有了这个启动脚本,我们就可以实现服务器的开机自动启动了,根据不同的操作系统,
将其加入启动运行项即可,唯一需要修改的地方是DAEMON 和PIDFILE 应该写成绝对路径,
以便在不同的目录下运行。
4
这段脚本只支持 POSIX 操作系统,如 Linux、Mac OS 等,在 Windows
下不可用。
6.3.4 共享 80 端口 5
到目前为止,网站都是运行在3000端口下的,也就是说用户必须在网址中加入:3000才
能访问网站。默认的HTTP 端口是80,因此必须监听80端口才能使网址更加简洁。如果整个
6
服务器只有一个网站,那么只需让app.js 监听80 端口即可。但很多时候一个服务器上运行
着不止一个网站,尤其是还有用其他语言(如PHP)写成的网站,这该怎么办呢?此时虚拟
主机可以粉墨登场了。
虚拟主机,就是让多个网站共享使用同一服务器同一IP地址,通过域名的不同来划分请 7
求。主流的HTTP服务器都提供了虚拟主机支持,如Nginx、Apache、IIS等。我们以Nginx为
例,介绍如何通过反向代理实现Node.js 虚拟主机。
在Nginx 中设置反向代理和虚拟主机非常简单,下面是配置文件的一个示例:
8
server {
listen 80;
server_name mysite.com;
location / { 9
proxy_pass http://localhost:3000;
}
}
这个配置文件的功能是监听访问mysite.com 80 端口的请求,并将所有的请求转发给
10
http://localhost:3000,即我们的Node.js 服务器。现在访问http://mysite.com/,就相当于服务器