gpt4 book ai didi

node.js - 用于代理传递的 Nodejs/Apache 配置

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:06 25 4
gpt4 key购买 nike

我想使用 Nodejs/Apache 代理通行证来服务我的 API,但是在添加以下 apache(httpd) 配置后,该配置似乎不起作用。

操作系统:

CentOS 6

/etc/httpd/conf/httpd.conf:

...
<VirtualHost *:80>
   ServerName example.com
   ServerAlias www.example.com
 
   DocumentRoot /home/MyUser/public_html
   <Directory />
      Options -Indexes +FollowSymLinks
      AllowOverride None
      Require all granted
   </Directory>
 
   ProxyRequests Off
   ProxyPreserveHost On
   ProxyVia Full
   <Proxy *>
      Require all granted
   </Proxy>
 
   <Location /api>
      ProxyPass http://MyVpsIp:1337
      ProxyPassReverse http://MyVpsIp:1337
   </Location>
 
</VirtualHost>
...

之后:

sudo service httpd restart

在浏览器中打开 example.com/api:

Not Found
The requested URL /api was not found on this server.

编辑:当我在浏览器中打开 example.com:1337/api 时,一切正常!但我想要 example.com/api

最佳答案

如果您想使用位置进行代理,以下内容应该适合您。

  <Location /test>
ProxyPass http://127.0.0.1:3001/ retry=0 timeout=60 keepalive=On
ProxyPassReverse http://127.0.0.1:3001/
</Location>

第一个问题是如何使用您的 URL?example.com/apiexample.com/api/smthng

如果您将在斜杠之间使用 api,例如/api/,则需要在位置标记中指定它,如下所示

/测试到/测试/

  <Location /test/>
ProxyPass http://127.0.0.1:3001/ retry=0 timeout=60 keepalive=On
ProxyPassReverse http://127.0.0.1:3001/
</Location>

另一点是如您所见,我还在 ProxyPass 末尾添加了一个/(ProxyPass http:.....:3001/)。因此,如果您与我们分享一些示例 URL,我们可能会为您提供正确的配置。

例如,在我的示例中:有一个 VirtualHost 监听 3001 端口,并且 DocumentRoot 中存储有一个 index.html(内容为“test”)。因此,如果我浏览 :3001 ,它将输出 test。

但是,如果我想使用代理(假设此 VirtualHost 在端口 88 上运行)。因此,如果我调用 some_ip:88/test ,它将返回测试根据我的第一个位置示例。我需要为我的第二个位置示例调用 some_ip:88/test/。

关于node.js - 用于代理传递的 Nodejs/Apache 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52576182/

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