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/,就相当于服务器
   145   146   147   148   149   150   151   152   153   154   155