2013-07-25 26 views
56

Tôi đang cố khởi động máy chủ nginx của mình. Khi tôi nhập "$> /etc/init.d/nginx start", tôi có một thông báo xuất hiện "Starting nginx:", và sau đó không có gì xảy ra. Không có thông báo lỗi và khi tôi kiểm tra trạng thái của nginx, tôi thấy rằng nó không chạy.Nginx không chạy không có thông báo lỗi

Đây là tập tin /etc/nginx/nginx.conf tôi:

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/*; 

}

Và đây là tập tin/etc/nginx/sites-available/default của tôi:

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

Bạn đã thử 'dịch vụ nginx configtest'? –

+0

Sử dụng lệnh này cho tôi câu trả lời này: "Kiểm tra cấu hình nginx: nginx." – user2618928

+3

Và "sudo nginx -t" cho tôi: nginx: tập tin cấu hình /etc/nginx/nginx.conf là ok nginx: tập tin cấu hình /etc/nginx/nginx.conf test thành công – user2618928

Trả lời

2

Kiểm tra tùy chọn daemon trong tệp nginx.conf. Nó phải được ON. Hoặc bạn có thể chỉ cần tách ra dòng này từ tập tin cấu hình. Tùy chọn này được mô tả đầy đủ tại đây http://nginx.org/en/docs/ngx_core_module.html#daemon

+0

Đây là nó. Cảm ơn bạn! – Alex

177

Đầu tiên, luôn luôn sudo nginx -t để xác minh tệp cấu hình của bạn là tốt.

Tôi đã gặp phải sự cố tương tự. Lý do tôi gặp vấn đề là gấp đôi. Đầu tiên, tôi đã vô tình sao chép tệp nhật ký vào thư mục đã bật trang web của mình. Tôi đã xóa tệp nhật ký và đảm bảo rằng tất cả các tệp trong các trang web được bật đều là cấu hình trang web nginx phù hợp. Tôi cũng nhận thấy hai máy chủ ảo của tôi đang lắng nghe cùng một miền. Vì vậy, tôi đảm bảo rằng mỗi máy chủ ảo của tôi có tên miền duy nhất.

sudo service nginx restart

Sau đó, nó hoạt động.

+54

'sudo nginx -t' là một mẹo tuyệt vời :) –

+1

Khi bạn (@badmadrad) cho biết tôi đã có những điều sau đây bằng cách chạy' sudo nginx -t'.but vẫn còn khi tôi cố gắng khởi động lại nó không thành công. 'ferdinand @ ferdinand-desktop: ~ $ sudo nginx -t nginx: tập tin cấu hình /etc/nginx/nginx.conf cú pháp là ok nginx: tập tin cấu hình /etc/nginx/nginx.conf kiểm tra thành công ferdinand @ ferdinand -desktop: ~ $ sudo service nginx restart * Khởi động lại nginx nginx [thất bại] ' –

+0

đảm bảo rằng trang web của bạn cho phép chỉ có các tệp conf nginx trong đó. Ngoài ra hãy chắc chắn rằng không có xung đột cổng khi bắt đầu nginx. – badmadrad

3

Trong file /etc/nginx/nginx.conf của bạn, bạn có:

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

Và có lẽ là con đường bạn đang sử dụng là:

/etc/nginx/sites-enabled/default 

Thông báo các thiếu s trong trang web.

0

Tôi gặp sự cố tương tự với ví dụ của mình. Vấn đề của tôi là tôi quên cho phép cổng 80 truy cập vào máy chủ. Có lẽ đó là vấn đề của bạn?

Kiểm tra với WHM của bạn và chắc chắn rằng cổng được mở cho địa chỉ IP của trang web của bạn,

-1

Đối với những gì nó có giá trị: Tôi chỉ có cùng một vấn đề, sau khi chỉnh sửa các tập tin nginx.conf. Tôi đã thử và thử khởi động lại bằng cách chỉ huy sudo nginx restart và các lệnh khác. Không ai trong số họ sản xuất bất kỳ đầu ra. Chỉ huy sudo nginx -t để kiểm tra tệp cấu hình đã cung cấp đầu ra sudo: nginx: command not found, điều này thật khó hiểu. Tôi bắt đầu nghĩ rằng có vấn đề với con đường.

Cuối cùng, tôi đăng nhập dưới dạng gốc (sudo su) và được chỉ định sudo nginx restart. Bây giờ, lệnh hiển thị thông báo lỗi liên quan đến tệp cấu hình. Sau khi sửa chữa nó, nó khởi động lại thành công.

7

Có thể bạn nên kiểm tra lỗi trong /var/log/nginx/error.log.

Trong trường hợp của tôi, tôi không thêm cổng cho ipv6.Bạn cũng nên làm điều này (nginx trong trường hợp bạn đang chạy trên một cổng khác hơn 80): listen [::]:8000 default_server ipv6only=on;

0

1. Kiểm tra cho các tập tin cấu hình của bạn bằng cách chạy lệnh nói trên: sudo nginx -t.

2. Kiểm tra xung đột cổng. Ví dụ: nếu apache2 (ps waux | grep apache2) hoặc bất kỳ dịch vụ nào khác đang sử dụng cùng một cổng được định cấu hình cho nginx (nói 80) thì dịch vụ sẽ không khởi động và sẽ không âm thầm (err ... người anh em họ của tôi có vấn đề này. Ví dụ:

0

Một trường hợp bạn kiểm tra xem nginx có giữ số cổng 80 trong hệ thống theo mặc định hay không, hãy kiểm tra xem bạn có máy chủ nào như apache hay bất kỳ thứ gì tồn tại trên hệ thống chặn cổng số 80 không.

1 .Bạn số thay đổi cổng trên nginx bằng cách này,

sudo vim/etc/nginx/sites-available/default

Change 80-81 hoặc bất cứ điều gì,

  1. Kiểm tra mọi thứ đều ổn,

sudo nginx -t

  1. máy chủ Restart

sudo dịch vụ nginx bắt đầu

  1. Kiểm tra trạng thái của nginx:

sudo trạng thái dịch vụ nginx

Hy vọng rằng sẽ làm việc

Các vấn đề liên quan