Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 通过apache访问nodejs_Angularjs_Node.js_Apache_Security_Reverse Proxy - Fatal编程技术网

Angularjs 通过apache访问nodejs

Angularjs 通过apache访问nodejs,angularjs,node.js,apache,security,reverse-proxy,Angularjs,Node.js,Apache,Security,Reverse Proxy,我想在我的nodejs应用程序上添加安全性 为此,我使用apache添加了一个proxyReverse,以使用apache访问我的节点应用程序。 它正在工作,但问题是我仍然能够访问我的节点应用程序,而无需通过apache… 我的节点站点位于mydomain上:8080/html/site.html 我使用apache访问mydomain/site上的节点 所以我想要的是将mydomain:8080/html/site.html重定向到mydomain/site 但我害怕打无限的电话 这是我的节点

我想在我的nodejs应用程序上添加安全性

为此,我使用apache添加了一个proxyReverse,以使用apache访问我的节点应用程序。 它正在工作,但问题是我仍然能够访问我的节点应用程序,而无需通过apache…

我的节点站点位于mydomain上:8080/html/site.html 我使用apache访问mydomain/site上的节点

所以我想要的是将mydomain:8080/html/site.html重定向到mydomain/site

但我害怕打无限的电话

这是我的节点server.js

var express = require('express');
var port = 8080;
/*------------------------
        Configuration
 ------------------------*/
app = express();
app.use(express.static('public'));

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

/* Port d'ecoute du serveur */
app.listen(port);
<VirtualHost 172.30.0.10:80 >
        ServerName "mydomain:80"
        UseCanonicalName Off


        ProxyPass /site http://mydomain:8080/html/site.html
        ProxyPassReverse /site http://mydomain:8080/html/site.html

        <Proxy *>
                Order deny,allow
                Allow from all
                Authtype Basic
                Authname "Password Required"
                AuthUserFile /etc/apache2/passwords
                Require valid-user
        </Proxy>

</VirtualHost>
这是我的apache2.conf

var express = require('express');
var port = 8080;
/*------------------------
        Configuration
 ------------------------*/
app = express();
app.use(express.static('public'));

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

/* Port d'ecoute du serveur */
app.listen(port);
<VirtualHost 172.30.0.10:80 >
        ServerName "mydomain:80"
        UseCanonicalName Off


        ProxyPass /site http://mydomain:8080/html/site.html
        ProxyPassReverse /site http://mydomain:8080/html/site.html

        <Proxy *>
                Order deny,allow
                Allow from all
                Authtype Basic
                Authname "Password Required"
                AuthUserFile /etc/apache2/passwords
                Require valid-user
        </Proxy>

</VirtualHost>

ServerName“mydomain:80”
UseCononicalName关闭
代理通行证/站点http://mydomain:8080/html/site.html
ProxyPassReverse/站点http://mydomain:8080/html/site.html
命令拒绝,允许
通融
Authtype Basic
Authname“需要密码”
AuthUserFile/etc/apache2/passwords
需要有效用户
我需要你的帮助和建议!提前感谢您阅读本文

改变这一点:

app.listen(port);
为此:

app.listen(port, 'localhost');
在Apache配置中使用
localhost:8080
而不是
mydomain:8080

这将告诉您的节点应用程序仅在环回接口上侦听,它不会回复来自不同主机的任何请求。但要实现这一点,您必须将代理配置更改为
localhost
,因为您的代理将无法使用与环回不同的接口连接到节点应用,即使它位于同一台机器上

处理所有这些问题的另一种方法是在TCP/IP级别上过滤数据包,但首先绑定到特定接口更容易。

更改此选项:

app.listen(port);
为此:

app.listen(port, 'localhost');
在Apache配置中使用
localhost:8080
而不是
mydomain:8080

这将告诉您的节点应用程序仅在环回接口上侦听,它不会回复来自不同主机的任何请求。但要实现这一点,您必须将代理配置更改为
localhost
,因为您的代理将无法使用与环回不同的接口连接到节点应用,即使它位于同一台机器上


处理所有这些问题的另一种方法是在TCP/IP级别上过滤数据包,但首先绑定到特定接口更容易。

你有答案吗???你有答案吗???