我正在尝试在AWS EC2实例上设置我自己的Ghost博客服务器。我在root用户下的远程服务器上启动Ghost后。我试图在我的本地浏览器上打开它。
ubuntu@ip-172-31-45-199:~/Ghost$ sudo npm start
> ghost@0.5.8 start /home/ubuntu/Ghost'
> node index
Migrations: Up to date at version 003
Ghost is running in development...
Listening on 127.0.0.1:2368
Url configured as: http://localhost:2368
Ctrl+C to shut down
当我将公共DNS放在端口2368后面时,这是Ghost的默认端口号。它无法显示页面。
我已经设置了安全组并打开SSH alltcp alludp http https。 我不知道为什么我可能没有配置它。我搜索了很多,但找不到有用的解决方案。任何人都可以给出一些建议吗?
答案 0 :(得分:1)
通常,NodeJS应用程序设置在代理服务器(如Nginx)后面,该代理服务器在端口80上运行。允许所有http流量仅通过此端口。在您的情况下,我认为您正在运行Ghost作为独立服务器而不需要任何代理服务器,因此您需要在端口80而不是端口2368上运行它。这需要root权限但我认为这对您来说应该不是问题
此外,您的EC2安全组应允许http流量通过。
最后,您的Ghost配置应该反映正确的URL而不是http:/ localhost ...
答案 1 :(得分:0)
当Ghost启动时,它说它正在侦听来自127.0.0.1的请求:
Listening on 127.0.0.1:2368
更新您的config.js文件,以便它可以收听来自任何地方的请求。要做这个改变:
host: '127.0.0.1',
到
host: '0.0.0.0',
正如Norman所说,在端口80上监听Node.js应用程序是不常见的。人们更常见的是配置Apache或Nginx来监听端口80,然后将请求代理到端口2368,其中Ghost将正在倾听。
您可以在我的帖子中看到一些配置Nginx或Apache的步骤:
http://www.allaboutghost.com/how-to-proxy-port-80-to-2368-for-ghost-with-apache/
http://www.allaboutghost.com/how-to-proxy-port-80-to-2368-for-ghost-with-nginx/