多个https网站配置访问node项目解决方法apache环境
文章栏目111011100
发布时间:2020-01-19 10:12:21

概述

使用apache服务访问我们代理的网站时发现出现404问题,普通的域名网站还好说我们可以直接访问到指定的目录下面打开,但是我们的node服务是通过localhost:8080端口来启动node项目的,所以我们要使用代理,但是我们发现内网可以通过localhost:8080访问到项目,外网却得到404通过ping我们发现网站能ping通这就跟防火墙没有关系了,剩下的就是我们内部访问问题了,特此记录

在 Apache 的配置文件中,打开 mod_proxymod_proxy_http 等等,即去掉 httpd.conf 中的#

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

因为我们的服务器不可能就部署一个网站,我们不能把下面的代码直接添加到 httpd.conf文件里,而是添加到每个站点单独的配置文件。
例如:/usr/local/apache/conf/host目录下是每个网站单独的配置文件。
下面是http 配置文件

<VirtualHost :80>
    ServerAdmin jiawenguang0213@sina.com
    #DocumentRoot "/data/root/xiangmu"//这个要注释掉,这个是我们正常添加站点时生成的文件。
    ServerName webrtc.xxxxxxx.com
    ErrorLog "/apache/logs/www.xinwangai.com_error_apache.log"
    CustomLog "/apache/logs/www.xinwangai.com_apache.log" common
    ProxyRequests off
            Order deny,allow
        Deny from all
        Allow from all
    </Proxy>
    <Location />
        ProxyPass http://localhost:6789/
        ProxyPassReverse http://localhost:6789/
    </Location>
</VirtualHost>

下面是https 配置文件

<VirtualHost :443>
    ServerAdmin huacheng26@gmail.com   #DocumentRoot "/data/root/xiangmu"//这个要注释掉,这个是我们正常添加站点时生成的文件。
    ServerName webrtc.xxxxxxx.com    SSLEngine on    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
    SSLCertificateFile /usr/local/apache/conf/ssl/public.pem
    SSLCertificateKeyFile /usr/local/apache/conf/ssl/webrtc.key
    SSLCertificateChainFile /usr/local/apache/conf/ssl/chain.pem
    ErrorLog "/apache/logs/www.xinwangai.com_error_apache.log"
    CustomLog "/apache/logs/www.xinwangai.com_apache.log" common    ProxyRequests off
            Order deny,allow
        Deny from all
        Allow from all
    </Proxy>
    <Location /> //这个地方是重中之重不添加你永远访问的是404
        ProxyPass http://localhost:6789/
        ProxyPassReverse http://localhost:6789/
    </Location>
</VirtualHost>

然后 运行你的$ node server.js