내 nginx가 실제로 사용하는 nginx.conf 파일을 찾으십시오.


130

서로 다른 두 버전의 nginx가 설치된 클라이언트 서버에서 작업합니다. 나는 그중 하나가 brew package manager (osx 상자)와 함께 설치되어 있고 다른 하나는 nginx 패키지 Makefile로 컴파일되고 설치된 것 같습니다. 서버에서 모든 nginx.conf 파일을 검색했지만이 파일 중 어느 것도 서버에서 시작할 때 실제로 nginx가 사용하는 매개 변수를 정의하지 않습니다. 내가 모르는 nginx.conf 파일은 어디에 있습니까?

답변:


245

nginx -t명령 행을 통해 실행 하면 테스트가 실행 되고 파일 경로가있는 출력이 구성 파일에 오류 또는 성공 메시지와 함께 출력됩니다.


33
% ps -o args -C nginx
COMMAND
build/sbin/nginx -c ../test.conf

-c옵션 없이 nginx를 실행 한 경우 -V옵션을 사용하여 비표준 값으로 설정된 구성 인수를 찾을 수 있습니다. 그중에서도 가장 흥미로운 것은 다음과 같습니다.

--prefix=PATH                      set installation prefix
--sbin-path=PATH                   set nginx binary pathname
--conf-path=PATH                   set nginx.conf pathname

1
나는 명령을 실행하려고했지만 그들은 나를 위해 작동하지 않았습니다. 두 번째 anwer 작동
Revious

33

모두 nginx -tnginx -V기본의 nginx 설정 파일 경로를 출력한다.

$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

$ nginx -V
nginx version: nginx/1.11.1
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1k 8 Jan 2015
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf ...

원하는 경우 다음을 통해 구성 파일을 얻을 수 있습니다.

$ nginx -V 2>&1 | grep -o '\-\-conf-path=\(.*conf\)' | cut -d '=' -f2
/etc/nginx/nginx.conf

다른 구성 파일을로드 한 경우에도 여전히 기본값을 인쇄합니다.


ps aux 현재로드 된 nginx 구성 파일을 보여줍니다.

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        11  0.0  0.2  31720  2212 ?        Ss   Jul23   0:00 nginx: master process nginx -c /app/nginx.conf

실제로 다음과 같이 구성 파일을 얻을 수 있습니다.

$ ps aux | grep "[c]onf" | awk '{print $(NF)}'
/app/nginx.conf

7
which nginx

사용중인 nginx의 경로를 알려줍니다.


편집 (2017 년 1 월 18 일)

이 답변에 대한 Will Palmer의 의견 덕분에 다음을 추가했습니다 ...

HomeBrew와 같은 패키지 관리자를 통해 nginx를 설치 한 경우 ...

which nginx

사용중인 nginx 의 정확한 경로를 제공하지 않을 수 있습니다 . 그러나 당신은 그것을 사용하여 그것을 찾을 수 있습니다

realpath $(which nginx)

@Daniel Li에서 언급했듯이

그의 방법을 통해 nginx의 구성을 얻을 수 있습니다

또는 이것을 사용할 수 있습니다 :

nginx -V

1
"대부분의"유닉스 기반 시스템에서 작동합니다. 방금 우분투에 입력하여 마음을 잃지 않았는지 확인했습니다.
tqwhite

1
오 와우, 나는 정정되었다. 즉시 답변을 수정하십시오. 감사합니다
Craig Wayne

1
which nginx현재 사용자에 대한 nginx 의 기본 경로 만 표시합니다 (현재 사용자는 물론 현재 ). nginx가 사용되는 경로를 보여주지는 않습니다.
Will Palmer

2

다른 모든 답변은 유용하지만 실행 nginx되지 않은PATHcommand not foundnginx 경우 도움이되지 않을 수 있으므로 실행하려고 할 때 얻을 수 있습니다 .

Debian 7 Wheezy에 nginx 1.2.1이 있으며 nginx실행 파일이 켜져 있지 않으므로 PATH먼저 찾아야했습니다. 이미 실행 중이므로를 사용하여에 ps aux | grep nginx있음을 알았 /usr/sbin/nginx으므로 실행/usr/sbin/nginx -t 해야했습니다 .

기본이 아닌 구성 파일을 사용하려면 (예 :) 매개 변수를 /etc/nginx/nginx.conf사용하여 실행하십시오 .-c/usr/sbin/nginx -c <path-to-configuration> -t

실행root 해야 할 수도 있습니다 . 그렇지 않으면 nginx에 로그와 같은 열 권한이 없을 수 있으므로 명령이 실패합니다.


1

@Daniel Li의 답변 외에도 Valet을 사용한 nginx 설치는 Velet 구성도 사용합니다. 이는 "/usr/local/etc/nginx/valet/valet.conf"에 있습니다. nginx.conf 파일은이 Valet conf 파일을 가져 왔습니다. 필요한 설정은 Valet 파일에있을 수 있습니다.

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