gpt4 book ai didi

angularjs - 通过apache访问nodejs

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:24 26 4
gpt4 key购买 nike

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

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

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

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

但我害怕无限调用电话。

这是我的 Node 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);

这是我的apache2.conf:

<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>

我需要你的帮助和建议!预先感谢您阅读本文!

最佳答案

更改此:

app.listen(port);

对此:

app.listen(port, 'localhost');

并在 Apache 配置中使用 localhost:8080 而不是 mydomain:8080

这将告诉您的 Node 应用程序仅监听环回接口(interface),并且不会回复来自与自身不同的主机的任何请求。但要实现这一点,您必须将代理配置更改为 localhost,因为您的代理将无法使用环回以外的接口(interface)连接到 Node 应用程序,即使它位于同一台计算机上也是如此。

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

关于angularjs - 通过apache访问nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42529842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com