nginx 설치에 추가 된 모듈을 어떻게 확인할 수 있습니까?
답변
nginx -V
구성된 모든 모듈을 나열합니다. 명시적인 enable / load 명령이 없습니다.
답변
확산 가능한 원 라이너 :
2>&1 nginx -V | tr -- - '\n' | grep _module
두 환경을 비교하는 데 편리합니다.
lsmodn="2>&1 nginx -V | tr -- - '\n' | grep _module"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
편집하다:
Roman Newaza에게 --without
모듈 컴파일 플래그가 포함되어 있음을 올바르게 지적 해 주셔서 감사합니다 . 나는 --without
플래그를 사용 하지 않고 모듈 목록을 얻는 데 집중했기 때문에 그것을 잡지 못했습니다. one-liner는 다음과 같이 두 설치 사이에서 diff 컴파일 플래그를 돕기 위해 수정 될 수 있습니다.
2>&1 nginx -V | tr ' ' '\n'
이는 다음과 같습니다.
2>&1 nginx -V | xargs -n1
어쩌면 sort
컴파일 플래그의 특유의 순서를 표준화하고 tr
다시 할당 가능한 라인으로 할당을 분할 하기 위해 파이프를 통과 시킬 수도 있습니다. 최종 결과:
lsmodn="2>&1 nginx -V | xargs -n1 | sort | tr = '\n'"
diff -y <(ssh www-prd eval $lsmodn) <(ssh www-qa eval $lsmodn)
sort
두 원격 호스트에서 모두 동일하게 작동하는 경우 (즉, 둘 다 GNU 또는 BSD 임) 작동합니다. Linux를 BSD (Mac OS X)와 비교하는 경우, | sort | tr = '\n'
조각을 lsmodn
로컬 쉘로 옮기면 sort
됩니다.
lsmodn="2>&1 nginx -V | xargs -n1"
diff -y <(ssh linux eval $lsmodn | sort | tr = '\n') <(ssh macosx eval $lsmodn | sort | tr = '\n')
메시 어지 만 작동합니다.
답변
-
nginx -V
명령 (대문자 V)는 모든 모듈뿐만 아니라 다른 컴파일시 옵션을 나열합니다 :%nginx -V
nginx version: nginx/1.2.2
built by gcc 4.2.1 20070719
TLS SNI support enabled
configure arguments: --prefix=/var/www --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-log-path=logs/access.log --error-log-path=logs/error.log --http-client-body-temp-path=/var/www/cache/client_body_temp --http-proxy-temp-path=/var/www/cache/proxy_temp --http-fastcgi-temp-path=/var/www/cache/fastcgi_temp --http-scgi-temp-path=/var/www/cache/scgi_temp --http-uwsgi-temp-path=/var/www/cache/uwsgi_temp --user=www --group=www --with-http_gzip_static_module --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module
%sudo
수퍼 유저 권한은 nginx에 의해 아래 포트IPPORT_RESERVED
(예 : 1024 아래 포트) 및 / 또는 쓰기를위한 특정 로그 파일을 열기 위해서만 필요하므로이 명령 은 필요하지 않습니다 .그러나 사용자에 따라
$PATH
설정, 당신은 전체 경로를 지정해야 할 수도 있습니다 중 – 예를 들어,/usr/sbin/nginx -V
또는 실제로 사용하는sudo
적절한 필요에 대한/sbin/
에 포함 할 디렉토리를$PATH
. -
새로운 Nginx의 출시를 시작으로 – 이후
nginx 1.9.11
(2 월 (2016)) – 동적으로로드 모듈이 지원됩니다 , 너무 – http://nginx.org/r/load_module을 -의 도움으로load_module
지시자.
답변
nginx -V
모든 모듈을 표시하지는 않지만 약 20 개의 모듈이 표시됩니다.
내가 사용하는 strings /usr/sbin/nginx|grep _module|grep -v configure| sort
내 nginx를 모든 200 개 + 모듈을 나열한다.
나는 또한 시도 objdump
했지만 설치에서 nginx가 바이너리가 제거 된 것처럼 보입니다.