美文网首页我爱编程
nginx、apache实现代理功能与直接访问node.js站点

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

作者: 刚刚悟道 | 来源:发表于2016-09-20 23:20 被阅读229次

    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,allow
    Allow from all
    </Proxy>
    ProxyPass / http://127.0.0.1:3000/
    ProxyPassReverse / http://127.0.0.1:3000/
    

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

    独立博客地址:chugang.net

    相关文章

      网友评论

        本文标题:nginx、apache实现代理功能与直接访问node.js站点

        本文链接:https://www.haomeiwen.com/subject/xqooettx.html