Angularjs 通过apache访问nodejs
我想在我的nodejs应用程序上添加安全性 为此,我使用apache添加了一个proxyReverse,以使用apache访问我的节点应用程序。 它正在工作,但问题是我仍然能够访问我的节点应用程序,而无需通过apache… 我的节点站点位于mydomain上:8080/html/site.html 我使用apache访问mydomain/site上的节点 所以我想要的是将mydomain:8080/html/site.html重定向到mydomain/site 但我害怕打无限的电话 这是我的节点server.js: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 但我害怕打无限的电话 这是我的节点
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级别上过滤数据包,但首先绑定到特定接口更容易。你有答案吗???你有答案吗???