2014-02-22 59 views
0

我跟隨this deployment tutorial運行Flask with UWSGI和Nginx。在幻燈片編號11的nginx的配置文件的內容給出:標準nginx.conf文件出錯。在哪裏包含服務器定義?

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; 
    } 
} 

,並從下一據我所知,這些內容應該進入文件/etc/nginx/sites-available/www幻燈片(12號)。所以我按照我的理解做了,但重新啓動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

你的問題可能是@uwsgi之間的空間,名爲位置應該這樣寫

location @uwsgi { 
    #config 
} 

報道里面nginx.conf的錯誤,因爲這是包括內部sites-enabled其他文件的配置文件,檢查在你的引擎收錄線72

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

也不要因爲這樣做的關機是使用sudo service nginx restart成功和啓動再次失敗,所以你最終得到一個死的服務器,而不是使用sudo service nginx reload這樣,如果你的配置錯誤,你不會失去正常運行時間。

要檢查配置錯誤的位置,您始終可以運行sudo nginx -t來測試配置文件。

+0

感謝您的想法。我真的犯了'@ uwsgi'錯誤。我修正了這個問題,但我仍然得到同樣的錯誤。我也跑了你的建議'sudo nginx -t',並將結果錯誤添加到我的問題中。這是否會給你更多關於可能出錯的信息? – kramer65

+1

看來你的nginx不支持'uwsgi',請嘗試運行'sudo apt-get install nginx-full',如果我沒有錯,並且正確記得,它會說它會卸載另一個nginx並將其替換爲'nginx-full',試試看 –

相關問題