如何在Amazon EC2上同时运行Node和Apache?

7

您好,我有一个在亚马逊上运行的EC2实例,它在正常的80端口上运行,我有一个在3002端口上运行的节点,如何使我的节点在Amazon EC2实例上的80端口上运行,并与Apache一起运行?我尝试了大多数在线教程,例如反向代理mod proxy等等,但都没有效果。

我需要在www.mywebsite.com/node上运行我的节点服务器,现在它正在www.mywebsite.com:3002/上运行。

我尝试编辑我的

/etc/httpd/conf/httpd.conf

像下面这样的Apache配置,但是没有任何效果。

<VirtualHost *:80>

ProxyRequests off

<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

<Location />
    ProxyPass /node http://localhost:3002/
    ProxyPassReverse /node http://localhost:3002/
</Location>
</VirtualHost>

1
为什么需要它们都在同一个端口上运行,即端口8080? - Luke P. Issac
在我的大学中,除了80端口或8080端口之外,所有其他端口都被阻止,因此我需要在这两个端口上运行。 - Sebin P Johnson
2个回答

2

我已经很久没有使用Apache了,但我认为您的mod_proxy位置应该是这样的:

<Location /node >
    ProxyPass http://localhost:3002/
</Location>

另外,您是否重启了Apache服务器?
使用命令service httpd restart即可完成重启。

1

使用SSH登录服务器

前往httpd.conf文件(“/etc/httpd/conf”)并进行编辑

sudo nano httpd.conf

ServerRoot "/etc/httpd" 后添加以下内容:ProxyPass /api/ http://localhost:3000/
ServerRoot "/etc/httpd"
ProxyPass /node/ http://localhost:3000/

现在保存 httpd.conf 文件并在 SSH 中重新启动 httpd 服务。
sudo systemctl restart httpd

现在你可以在同一服务器上运行两个东西:

www.mywebsite.com => Apache

www.mywebsite.com/node => Node


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接