2013-07-25 67 views
56

我想啓動我的nginx服務器。 當我輸入「$> /etc/init.d/nginx start」時,我有一條消息出現「Starting nginx:」,然後沒有任何反應。沒有錯誤信息,當我檢查nginx的狀態時,我發現它沒有運行。Nginx沒有運行沒有錯誤信息

這裏是我的/etc/nginx/nginx.conf文件:

worker_processes 4; 
daemon off; 

error_log /home/vincent/tmp/nginx.log; 

pid  /home/vincent/tmp/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
default_type application/octet-stream; 

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
        '$status $body_bytes_sent "$http_referer" ' 
        '"$http_user_agent" "$http_x_forwarded_for"'; 

access_log /home/vincent/tmp/access.log main; 

sendfile  on; 

keepalive_timeout 65; 

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

}

這裏是我的/ etc/nginx的/網站可用/默認文件:

server { 
    listen  80; 
    server_name technical-test.neo9.lan; 

    access_log /var/log/nginx/technical-test.neo9.lan.log main; 

    set $home /home/vincent; 

    location/{ 
    alias $home/neo9/web/app/; 
    index index.html; 
    } 

    location /api/ { 
    rewrite ^/api/(.*)$ /$1 break; 
    proxy_pass http://localhost:1234; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    } 
} 
+3

你嘗試'服務nginx的configtest'? –

+0

使用此命令給我這個答案:「測試nginx配置:nginx」。 – user2618928

+3

而「sudo nginx -t」給了我:nginx:配置文件/etc/nginx/nginx.conf語法正常 nginx:配置文件/etc/nginx/nginx.conf測試成功 – user2618928

回答

177

首先,總是用sudo nginx -t來驗證你的配置文件是否好。

我遇到了同樣的問題。我有這個問題的原因是雙重的。首先,我不小心將日誌文件複製到啓用站點的文件夾中。我刪除了日誌文件,並確保啓用網站的所有文件都是正確的nginx站點配置。我還注意到我的兩臺虛擬主機正在偵聽同一個域。所以我確保每個虛擬主機都有唯一的域名。

sudo service nginx restart

然後它的工作。

+54

'sudo nginx -t'是一個了不起的技巧:) –

+1

正如你(@badmadrad)所說,我通過運行'sudo nginx -t'.但仍然當我嘗試重新啓動時失敗。 'ferdinand @ ferdinand-desktop:〜$ sudo nginx -t nginx:配置文件/etc/nginx/nginx.conf語法正常 nginx:配置文件/etc/nginx/nginx.conf測試成功 ferdinand @ ferdinand -desktop:〜$ sudo服務nginx重啓 *重啓nginx nginx [失敗]' –

+0

確保你的啓用站點只有nginx conf文件。還要確保啓動nginx時沒有端口衝突。 – badmadrad

3

在你/etc/nginx/nginx.conf文件,你必須:

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

,也許你正在使用的路徑是:

/etc/nginx/sites-enabled/default 

通知失蹤S IN網站

0

我和我的實例有完全相同的問題。我的問題是我忘記了允許80端口訪問服務器。也許這也是你的問題?

請與您的WHM,並確保該端口是開放的爲您的網站的IP地址,

-1

對於它的價值:我有同樣的問題,編輯nginx.conf文件之後。我嘗試並嘗試通過命令sudo nginx restart和其他各種命令重新啓動它。他們都沒有產出任何產出。指令sudo nginx -t檢查配置文件給出了輸出sudo: nginx: command not found,這是令人費解的。我開始認爲這條道路存在問題。

最後,我以(sudo su)和命令sudo nginx restart的身份登錄爲。現在,該命令顯示了有關配置文件的錯誤消息。修復後,它成功地重新啓動。

7

您應該檢查/var/log/nginx/error.log中的錯誤。

在我的情況下,我沒有爲ipv6添加端口。你也應該這樣做(如果你正在運行的nginx 80以外的端口上): listen [::]:8000 default_server ipv6only=on;

0

檢查您的配置文件,通過運行上述命令:sudo nginx -t

2.檢查端口衝突。舉例來說,如果的Apache2ps waux | grep apache2)或任何其他服務使用配置nginx的相同的端口(說80端口)的服務將無法啓動,將失敗默默(嗯...我的朋友的表妹有這個問題。 ..)

0

一種情況你檢查nginx默認保存在系統的80號端口上,檢查你是否有任何類似apache的服務器或系統上存在任何阻止80號端口發生問題的東西。

通過這樣的nginx 1。你改變端口號,

須藤的vim的/ etc/nginx的/網站可用/默認

變化80至81或任何東西,

  • 檢查一切是通過確定,
  • 須藤nginx的-t

  • 重啓服務器
  • 須藤服務nginx的啓動

  • 檢查nginx的狀態:
  • sudo的服務nginx的狀態

    希望將工作