我在AWS ec2实例上托管我的网站。我想在端口8080(或类似的东西)上运行Node.JS服务器,我希望所有访问example.com的用户都被发送到example.com:8080。出于某种原因,重写example.com - > example.com:8080不起作用,因为AWS不允许访问example.com:someport。
如何在不使用普通重定向的情况下强制所有用户使用example.com:8080? (我可能完全错了,只是做得不正确)
答案 0 :(得分:1)
试试这个
RewriteEngine On
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule ^/(.*) http://www.example.com:8080/$1
答案 1 :(得分:-1)
你必须使用原始EC2吗?这可能是不必要的低水平。您可以改为使用Up或ElasticBeanstalk吗?任何一个都应该让这更容易。
另外,为什么需要在端口8080上?我的猜测是,因为当你在本地开发时,你使用那个端口(因为一个端口不使用端口80在本地开发)。为什么没有设置const port = process.env.PORT || 80
的ENV var,然后在本地开发时用PORT=8080 node server.js
调用节点。
当然,节点崩溃了。很多。这是它的事情。因此,您不希望在ec2实例上运行命令node filename.js
...您想要使用forever
或pm2
。而且,你真的想要一个反向代理(Nginx)向你的节点实例发送流量......这就是我说使用Up或Beanstalk的原因。但如果你必须自己做,this演练涵盖了基础。