Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Node.js 我应该如何更改NodeJS-Apache设置以获得所需的结果?_Node.js_Apache_Redirect_Subdomain_Port - Fatal编程技术网

Node.js 我应该如何更改NodeJS-Apache设置以获得所需的结果?

Node.js 我应该如何更改NodeJS-Apache设置以获得所需的结果?,node.js,apache,redirect,subdomain,port,Node.js,Apache,Redirect,Subdomain,Port,好的,我已经设置了一个工作的apache虚拟主机配置,它会根据IP请求重定向用户。设置如下所示: <VirtualHost *:80> DocumentRoot "C:\wamp\www\dns" ServerName ConnectToServer ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location />

好的,我已经设置了一个工作的apache虚拟主机配置,它会根据IP请求重定向用户。设置如下所示:

<VirtualHost *:80>  
DocumentRoot "C:\wamp\www\dns"
ServerName ConnectToServer

ProxyRequests off
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>
<Location />
        ProxyPass http://localhost:8080/
        ProxyPassReverse http://localhost:8080/
</Location>

DocumentRoot“C:\wamp\www\dns”
服务器名连接到服务器
代理请求关闭
命令拒绝,允许
通融
ProxyPasshttp://localhost:8080/
ProxyPassReversehttp://localhost:8080/

问题是,我希望apache服务器根据特定子域的请求重定向到NodeJS服务器

例如,如果用户请求www.stackoverflow.com,apache将重定向到nodeJs服务器,但我希望它在请求www.stackoverflow.com/question这样的子域时重定向到服务器

那么,如何设置基于名称的虚拟主机呢


我想知道的是,通过apache使我的服务器可用这一做法是否有利于生产,或者我是否应该找到另一种解决方案,如heroku或ngix

有几种方法可以做到这一点。但是,我不建议将Apache放在节点前面。Nginx更好,但实际上不再需要了。我在服务器上所做的是在我的节点应用程序和Apache站点前面运行节点代理

有关我如何实现此功能的更多详细信息,请参见以下答案:

Apache->Node

服务器名www.question.com
代理请求关闭
命令拒绝,允许
通融
ProxyPasshttp://localhost:3000/
ProxyPassReversehttp://localhost:3000/

让我检查一下。从生产角度来看,这个解决方案是一个好的实践吗?好的,Timothy,首先感谢您的回答。其次,我喜欢您的设置,我会在不久的将来尝试它。但是,m setup的问题是,我需要在运行wamp的计算机上上传我的node.js服务器,我不能更改其中的设置等,因为它不属于我。因此,我希望对使用wamp运行的Web服务器的其余部分产生最小的影响。我如何从子域重定向到nodejs服务器?我想是的,否则我就不会在生产中使用它了!我没有遇到任何问题。http代理非常简单,可以毫无问题地运行。当您将Apache放在节点前面时,它将成为请求的潜在瓶颈。更新了我的答案,以包括一个应该可以工作的VirtualHost设置。您不需要DocumentRoot,因为它只是作为代理,不提供文件。很抱歉,也许我没有按我应该的方式回答这个问题。正如我所说,我有一个类似的设置,就像你回答的那样。我想从那个阶段开始,让它成为名字驱动的重定向。在我们的代码中,我们在哪里说当您键入该域(例如localhost:8080/question)时,您将转到节点jsserver?
<VirtualHost *:80>  
    ServerName www.question.com

    ProxyRequests off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    <Location /answer>
        ProxyPass http://localhost:3000/
        ProxyPassReverse http://localhost:3000/
    </Location>
</VirtualHost>