我使用amazon Route 53购买了一个域名,创建了一个弹性IP地址并将其附加到运行MEAN bitnami堆栈的Amazon EC2实例,然后我创建了一个用于静态Web托管的S3存储桶“将所有请求重定向”到www。 domainname.com。
然而,当我进入我的根域时,加载的页面是Bitnami Congratulations页面:您现在正在云中运行Bitnami MEAN 3.2.11-0。我创建了一个文件夹,上传了我的MEAN angular 2 / express应用程序并做了node server.js,我只能在mydomain.com:8080上访问我的网络应用程序,但其他任何内容都重定向到Bitnami祝贺页面。这样做的设置是什么?这是亚马逊的设置吗? Bitnami设置?或者我服务器端代码中的某些内容。 我在服务器代码中唯一提到8080的地方就在这里,当我运行服务器时,它会打印8080上运行的API:
const port = process.env.PORT || '8080';
app.set('port', port);
const server = http.createServer(app);
server.listen(port, () => console.log(`API running on: ${port}` + ' or ' + process.env.PORT));
答案 0 :(得分:4)
您的MEAN堆栈上运行了Apache。 Apache在端口80/443上运行,因此,只要您在端口80访问域,Apache就会处理请求并显示“Bitnami欢迎页面”。
为了使您的Angular / express应用程序在端口80可用,您需要配置Apache以将请求重定向到端口3000(或端口8080,基本上是运行Express应用程序的端口)。您可以在文件<VirtualHost _default_:80>
下的<VirtualHost _default_:443>
和/opt/bitnami/apache2/conf/bitnami/bitnami.conf
部分下面添加:
ProxyPass /bitnami !
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
之后,您将需要重新启动Apache运行:
sudo /opt/bitnami/ctlscript.sh restart apache
您可以在以下位置找到更多信息: https://docs.bitnami.com/aws/infrastructure/mean/
答案 1 :(得分:1)
Bitnami默认情况下使用http配置启动:root / opt / apache2 / conf / httpd.conf。 apache2服务器指向一个根目录,其中包含带有index.html的html,其中包含Congratulations页面。使用sudo /opt/bitnami/ctlscript.sh停止此服务器以及它在启动时默认运行的所有其他服务,因此当我键入node server.js时,所有流量现在都转到我的Angular 2应用程序。
答案 2 :(得分:0)
使用 NGINX 将所有流量从http://www.domainname.com反向代理到运行节点服务器的地址(http://localhost:8080)。 Here是此类用例的示例NGINX配置。
要安装NGINX,请参阅digitalocean.com上的一个教程,具体取决于您的服务器操作系统。
答案 3 :(得分:-1)
您必须更改应用程序侦听端口80的端口。