nginx、apache实现代理功能与直接访问node.js站点

来源:互联网 发布:知凡生物 编辑:程序博客网 时间:2024/05/21 10:24

nginx、apache实现代理功能与直接访问node.js站点

独立博客地址:chugang.net

node.js站点

node.js自带服务器,用它驱动的站点,不需要nginx、apache。
如果一台服务器上运行多个站点,80端口已经被占用,访问node.js驱动的站点,
就必须在URL中加上端口号,比如:http://127.0.0.1:1227。这种URL不
友好。想继续用node.js驱动站点,又不能把80端口作为node.js站点的
端口,可以尝试代理服务器。

nginx配置代理服务器

在nginx的配置文件中加入下面的代码:

#反向代理server {    listen       80;    server_name  node.chugang.net;    location / {        proxy_pass http://88.88.88.102:3000;    }       }

上面的代码新建了一个nginx站点,但这个站点本身没有也不提供数据,只是起转发
请求的作用。http://88.88.88.102:3000是实际提供数据的站点,node.chugang.net
是那个实际站点提供给外部的访问地址。

node.chugang.net有两个作用:

  • 定位到服务器。
  • 定位到服务器上的某个站点。

具体来说,由node.chugang.net找到IP为88.88.88.102的服务器。这台服务器上有多个
站点,但每个站点有一个特定的server_name。再次根据node.chugang.net找到server_name
等于node.chugang.net的站点。对node.chugang.net的请求,交给这个站点出来。而该站点
locationproxy_pass的指令下,又将请求转发给实际提供数据的站点。

对此处有个疑问:实际站点可以是一个只能本地访问、不对外开放的站点吗?

独立博客地址:chugang.net

apache配置代理服务器

我用的是Wampserver测试apache。在配置文件E:\wamp64\bin\apache\apache2.4.17\conf\extra\httpd-vhosts.conf
中加入下面的代码:

<VirtualHost *:80>    ServerAdmin webmaster@dummy-host2.example.com    ErrorLog "logs/node-blog.com-error.log"    CustomLog "logs/node-blog.com-access.log" common    ProxyRequests On    <Proxy *>    Order deny,allow    Allow from all    </Proxy>    ProxyPass / http://127.0.0.1:3000/    ProxyPassReverse / http://127.0.0.1:3000/</VirtualHost>

这段代码中与代理服务器直接相关的是:

ProxyRequests On<Proxy *>Order deny,allowAllow from all</Proxy>ProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http://127.0.0.1:3000/

与nginx相比,命令多一些。从网络资料搜集而来并测试通过之后,并没有去深究它们的含义。先存疑吧。

独立博客地址:chugang.net

0 0
原创粉丝点击