Nginx를 다시로드하지 못했습니다-왜 추적하는 방법?


96

안녕하세요, Nginx 서버가 우분투 서버 12.04에서 잠시 동안 실행되었습니다.

나는 다양한 비트를 점차적으로 조이고 있었고, 워드 프레스 페이지에서로드 시간을 최적화하는 한까지.

호스트 파일을 약간 변경 한 후 다음과 같이 결정했습니다.

sudo /etc/init.d/nginx reload

내가 얻는 것 :

  • nginx 구성 다시로드 nginx [실패]

추가 정보 나 추론이 없습니다. 서버를 다시 시작하여 다시로드하는 동안 오류 문장을 인쇄하여 오류를 추적하기 시작하는 방법은 무엇입니까?

보너스 질문 :

Nginx sysadmins의 경우 호스트를 많이 변경하고 몇 가지 다른 비트를 사용하면 갑자기 nginx 서버가 다시로드되지 않습니다 (실수로 모든 것이 여전히 실행중인 것처럼 보입니다!) 왜 또는 디버그하기 위해 세분화하기 시작하십시오!


4
로 구문을 확인하십시오 sudo nginx -t(또는 구성 접 두부 및 기본 구성 파일 은 sudo nginx -p /etc/nginx -c nginx.conf어디에 있습니까 ). /etc/nginxnginx.conf
Lekensteyn

sudo nginx -s reload도 나에게 독해를주는 것처럼 보였다!
Huw

답변:


145

구성 파일 문제에 대한 메시지는 syslog (/ var / log / syslog)를 확인하십시오.

명령 행에서 다음을 실행할 수 있습니다.

nginx -c /etc/nginx/nginx.conf -t

nginx가 구성에서 오류를 확인하도록합니다.


아하! 매우 유용합니다 : 위치 "/ blog / wp-admin"이 /etc/nginx/site-configs/wordpress.conf:1 위치 "/blog/.*\.php$"외부에 있습니다. , 계속 나에게 무언가를 준다!
Huw

2
아! 세 시간의 검색과 내가 놓친 것으로 밝혀졌습니다. 모든 도움을 주셔서 감사합니다. 추적하는 데 필수적이었습니다. 우연히 Ars Technica 웹 제공 게시물을 따른 후 누군가 가이 질문에 도달하면. 나는 지금 좋은 치아 빗으로 그들을 겪었다 고 생각합니다!
Huw

4
나에게이 명령을 제공 실행 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful아직 난 여전히 시작 nginx를 얻을 수 없다
빌 수비대

1
@BillGarrison 자세한 정보는 syslog 및 nginx 오류 로그를 확인하십시오
Dlloyd


7

에서 오류를 확인해야합니다 /var/log/nginx/error.log.

필자의 경우 ipv6에 대한 포트를 추가하지 않았습니다. 또한이 작업을 수행해야합니다 (80 이외의 포트에서 nginx를 실행중인 경우). listen [::]:8000 default_server ipv6only=on;


1
참고 :에 대한 권한이 잘못된 경우 /var/log/nginx/error.lognginx는 오류를 쓸 수 없으며 자동으로 실패합니다. 허용 된 답변 ( nginx -c /etc/nginx/nginx.conf -t) 과 같이 구성을 확인 하면 도움이됩니다.
user898763452

5

다음 명령을 실행하여 nginx를 백업하고 작동시킵니다.

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 

nginx가 작동합니다!


2
제거하고 제거 할 필요는 없으며 제거 만하면됩니다. 퍼지가 모든 구성 파일을 제거하므로 질문에 답할 수 있는지 알기가 어렵습니다.
Panther

1
이상적 - 다른 사용자를 위해 나는 고장이 발생 된 곳으로 판독의 최대 양을 얻을 대신 정화의 현재 설치 내 수리를 선호하는 것 처음부터 시작
Huw

1
@ bodhi.zazen 내 대답을 수정했습니다. "휴"가 말한 것에 동의합니다. 설치 및 설정을 시작 nginx했을 때 오류를 추적하는 대신 제거하고 다시 시작하는 것이 큰 도움이되지 않았습니다. 귀하의 사이트에 감사드립니다.
Aaron Lelevier

제 경우에는 오직이 명령을 사용하기 시작했습니다 sudo /etc/init.d/nginx start
Sizzling Code

3

귀하의 확인 /etc/nginx/sites-available/default당신이 사용하고 그것의 또는 어떤 사본, 당신은 주석 (제거해야합니다 #어떤) }당신이 관련하여해야 할 수도 있습니다 {가능성이 주석였습니다. 그게 내 문제 였어


2

nginx를 제거하고 명령 행에 입력하십시오 :

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default

당신은 의미 apt-get purge합니까?
RolandiXor

2

사용하여 모든 파일을 다시여십시오

nginx -s reopen

그런 다음 사용

nginx -s reload

nginx 도움말에서 알 수 있듯이 신호를 마스터 프로세스로 보내서 nginx를 다시로드하십시오.

요청 : purge초보자에게 문제를 일으킬 수 있으므로주의해서 명령을 제공 하지 마십시오 (모든 구성이 손실 됨) .... 큰 문제입니다.


1

그러한 오류가 발생하면 체크 journalctl -xe아웃 할 수 있습니다 .
그것은 운영 체제 문제에서 일어난 일에 대한 많은 정보를 가지고 있습니다.
당신은 라인 journalctl -xe | grep nginx을 찾 거나 단순히 nginx가 자신을 실행하려고 할 때 일어난 일을 찾을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.