在AWS ec2实例上设置Ghost博客

时间:2015-02-10 05:16:27

标签: amazon-web-services amazon-ec2 ghost-blog

我正在尝试在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。 我不知道为什么我可能没有配置它。我搜索了很多,但找不到有用的解决方案。任何人都可以给出一些建议吗?

2 个答案:

答案 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/