我启用了端口TCP 3000,它甚至显示在EC2安全设置下启用。
虽然我无法通过该端口远程登录我的服务器,但我收到Could not open connection to the host, on port 3000: Connect failed
。
我正在俄勒冈州运行Ubuntu 12.04 AWS EC2 Micro实例。
我正在服务器上运行apache来托管http(s)(80/443)流量,并且我正尝试通过nodejs express通过端口3000托管其他应用。
这是我启用Apache站点的文件:
<VirtualHost *:80>
ServerAdmin name@domain.com
ServerName www.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin name@domain.com
ServerName lobby.domain.com
ServerAlias lobby.domain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://lobby.domain.com/
</Location>
</VirtualHost>
答案 0 :(得分:1)
这是你想要的反向代理配置:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin name@domain.com
ServerName www.domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/
</VirtualHost>
<VirtualHost *:80>
ServerAdmin name@domain.com
ServerName lobby.domain.com
ServerAlias lobby.domain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://127.0.0.1:3000/
ProxyPassReverse http://127.0.0.1:3000/
</Location>
</VirtualHost>
确保从命令行启用apache代理模块:
a2enmod proxy
a2enmod proxy_connect
a2enmod proxy_http
a2enmod proxy_balancer
service apache2 restart
答案 1 :(得分:0)
确保您在0.0.0.0
而不是127.0.0.1
或localhost
上绑定您的应用。听起来您的应用程序没有在服务器外部监听IP地址。
(还要确保你的node.js应用程序也在运行)
要列在0.0.0.0
上,您需要在应用程序中使用以下内容:
var app = connect().use(connect.static('public')).listen(3000, "0.0.0.0");