标准的nginx.conf文件出错。哪里包含server {}定义?

时间:2014-02-22 00:37:02

标签: ubuntu configuration nginx ubuntu-12.04 uwsgi

我正在关注使用UWSGI和Nginx运行Flask的this deployment tutorial。在第11号幻灯片中,给出了nginx配置文件的内容:

server {
    listen 8080;
    server_name myapp;

    root /var/www/myapp;
    try_files $uri @uwsgi;
    location @uwsgi {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/myapp.sock;
    }
}

从下一张幻灯片(编号12)我明白这些内容应该进入文件/etc/nginx/sites-available/www。所以我按照我的理解做了,但是在重新启动nginx(sudo service nginx restart)后,我收到错误nginx: configuration file /etc/nginx/nginx.conf test failed

奇怪的是,我从未触及过nginx.conf文件(我复制了它的内容here on pastebin),它仍然会导致错误。

有人知道我做错了什么,更重要的是,我怎么能解决这个问题?欢迎所有提示!

[编辑] 在@MohammadAbuShady的提示之后,我修复了@uwsgi中的空格,但我仍然得到相同的错误。运行建议的sudo nginx -t可以获得以下信息:

nginx: [emerg] unknown directive "uwsgi_param" in /etc/nginx/uwsgi_params:1
nginx: configuration file /etc/nginx/nginx.conf test failed

这是否会提供任何新信息?

1 个答案:

答案 0 :(得分:1)

您的问题可能是@uwsgi之间的空格,命名位置应该像这样写

location @uwsgi {
  #config
}

错误是在nginx.conf内报告的,因为这是包含sites-enabled内其他文件的配置文件,在您的pastebin中检查行72

include /etc/nginx/sites-enabled/*;

另外不要使用sudo service nginx restart,因为关闭成功并且启动再次失败,所以你最终得到一个死服务器,而不是使用sudo service nginx reload这样你就不会松动如果你的配置错误,你的正常运行时间。

要检查配置错误的位置,您始终可以运行sudo nginx -t来测试配置文件。