Ghost、Nginx、502 和端口问题

Ghost、Nginx、502 和端口问题

在节点为 0.10 的 Digital Ocean Droplet 上尝试安装 Ghost 0.4.2 时遇到了问题。我使用了 Dokku Droplet(而不是他们的 Ghost 设置),因为我想安装具有不同域的多个节点应用程序。

我使用 git 克隆了稳定的 Ghost 版本,并按照他们提供的说明进行设置:

npm install -g grunt-cli
npm install
grunt init (and grunt prod if you want to run Ghost in production mode)
npm start

我已将 config.js 文件(生产部分)更改为

    url: 'http://mydomain.co',  
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },
    server: {
        // Host to be passed to node's `net.Server#listen()`
        host: '0.0.0.0',
        // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
        port: '2368'

当我使用端口 2368 时,它显示“Ghost 正在运行...您的博客现在可以在http://mydomain.co

但随后页面上出现了 nginx 502 错误。

好的,当我将生产端口更改为 80(一篇文章建议这样做)时,它会引发此错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1039:14)
    at listen (net.js:1061:10)
    at net.js:1143:9
    at dns.js:72:18
    at process._tickDomainCallback (node.js:459:13)
    at process._tickFromSpinner (node.js:390:15)
npm ERR! weird error 8
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

我猜这意味着该端口已被使用。

我如何设置正确的端口?

好的,下面还有一部分我不明白。许多网站都提到尝试“sudo service ghost restart”。我总是得到“ghost:无法识别的服务”的提示。这很奇怪,因为一切都已准备就绪,并且他们提供的开发人员说明(参见本文顶部)对于安装它很有效。但我的系统不知道它在那里。

另外,似乎没有任何 /var/www/ghost 文件。不确定这是什么意思。

我已经侦查过,也用谷歌搜索过,但似乎还是没能找到答案。如能提供任何提示或建议,我将不胜感激。

答案1

这是我的 ghost config.js 文件中的内容

server: {
        // Host to be passed to node's `net.Server#listen()`
        host: '127.0.0.1',
        // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
        port: '2368'
}

我看到你的主机设置为0.0.0.0

相关内容