Nginx配置与Node.js一起使用

时间:2015-05-29 12:33:40

标签: node.js nginx ghost-blog

我知道这里或网上都有类似的问题或演练,尽管我坚持这一点。

背景

我正在尝试设置一个本地虚拟主机ghost.local,其中将有一个ghost博客(在Node.js上)。所以我想,当我在我的Ubuntu 14.04机器上访问http://ghost.local时,Nginx会将请求传递给Node.js,我将能够看到我的幽灵博客。

问题

我已经设置了 hosts 文件我设置了nginx vhosts我的ghost在Node.js上运行。虽然当我访问http://ghost.local时,我得到了

503服务不可用无法解析服务器名称ghost.local

我的主人档案:

 127.0.0.1  ghost.local
 127.0.0.1  localhost

我的/etc/nginx/sites-available/ghost.local文件:

 server {
     listen 80;
     server_name ghost.local;
     access_log /var/log/nginx/ghost.local.log;

     location / {        
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-for $remote_addr;
         proxy_set_header HOST $http_host; 

         proxy_pass http://localhost:2368;
         proxy_redirect off;
    }
 }

/etc/nginx/sites-enabled/ghost.local中的链接设置正确。

我没有发布任何来自ghost或node.js的内容,因为在http://localhost:2368上启动并运行一切正常。

任何人都有意见吗? 提前谢谢大家。

修改 正如我在评论中提到的,问题很可能是在我的机器上设置上述配置在新机器中工作。

1 个答案:

答案 0 :(得分:0)

首先,它似乎安装了错误版本的nginx。您是否自己安装了它,如果是这样,您应该使用最新版本重新安装nginx。

其次,如果您的网站位于http://ghost.local,我感到很困惑?

因为server_name应该是您网站的子/域,所以她就是一个例子:

server_name www.example.com example.com test.example.com;

以下是http://example.com

网站的基本nginx配置
server {
        listen 80;
        server_name example.com;
        location / {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host      $http_host;
                proxy_pass                 http://127.0.0.1:2368;
        }
}

server {
        listen 80;
        server_name www.example.com;
        return 301 http://example.com/$request_uri;
}

确保重新启动nginx。

service nginx restart