서로 다른 두 버전의 nginx가 설치된 클라이언트 서버에서 작업합니다. 나는 그중 하나가 brew package manager (osx 상자)와 함께 설치되어 있고 다른 하나는 nginx 패키지 Makefile로 컴파일되고 설치된 것 같습니다. 서버에서 모든 nginx.conf 파일을 검색했지만이 파일 중 어느 것도 서버에서 시작할 때 실제로 nginx가 사용하는 매개 변수를 정의하지 않습니다. 내가 모르는 nginx.conf 파일은 어디에 있습니까?
답변
nginx -t
명령 행을 통해 실행 하면 테스트가 실행 되고 파일 경로가있는 출력이 구성 파일에 오류 또는 성공 메시지와 함께 출력됩니다.
답변
% 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
답변
모두 nginx -t
와 nginx -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
답변
which nginx
사용중인 nginx의 경로를 알려줍니다.
편집 (2017 년 1 월 18 일)
이 답변에 대한 Will Palmer의 의견 덕분에 다음을 추가했습니다 …
HomeBrew와 같은 패키지 관리자를 통해 nginx를 설치 한 경우 …
which nginx
사용중인 nginx 의 정확한 경로를 제공하지 않을 수 있습니다 . 그러나 당신은 그것을 사용하여 그것을 찾을 수 있습니다
realpath $(which nginx)
@Daniel Li에서 언급했듯이
그의 방법을 통해 nginx의 구성을 얻을 수 있습니다
또는 이것을 사용할 수 있습니다 :
nginx -V
답변
다른 모든 답변은 유용하지만 실행 nginx
되지 않은PATH
command not found
nginx
경우 도움이되지 않을 수 있으므로 실행하려고 할 때 얻을 수 있습니다 .
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에 로그와 같은 열 권한이 없을 수 있으므로 명령이 실패합니다.
답변
@Daniel Li의 답변 외에도 Valet을 사용한 nginx 설치는 Velet 구성도 사용합니다. 이는 “/usr/local/etc/nginx/valet/valet.conf”에 있습니다. nginx.conf 파일은이 Valet conf 파일을 가져 왔습니다. 필요한 설정은 Valet 파일에있을 수 있습니다.