"Enter"a basıp içeriğe geçin

NGINX Modüllerine Genel Bakış

Last updated on 10 Eylül 2020

Daha önce gördüğümüz gibi, NGINX’in işlevselliği, işlevselliğe (rewrites, SSL, auth_basic, vb.) Dayalı olarak modüllere ayrılmıştır. Bu videoda NGINX’in modül sisteminin nasıl çalıştığını inceleyeceğiz.

The load_module directive

Dinamik ve Yerleşik Modüller

Şimdiye kadar, zaten yerleşik olan modülleri kullanıyorduk, ancak bu, tüm modüllerin yerleşik olduğu anlamına gelmiyor. NGINX 1.9.11’den itibaren, yapılandırma yüklendiğinde yüklenebilen ve NGINX ikili dosyasının yeniden derlenmesini gerektirmeyen dinamik modüller vardır. Bu değişiklik, NGINX’in daha esnek olmasını sağlar ve NGINX çekirdek paketi, henüz yüklemediğimiz bazı dinamik modüller paketlenmiş olarak gelir.

NGINX’i kurduğumuzda yüklenen dinamik modülleri görmek için /usr/share/nginx/ modules’e bakın (/etc/nginx/ modules dizini de bu yola sembolik bir bağlantıdır). Şimdi oraya bakarsak hiçbir şey görmeyiz:

[root] $ ls -l /etc/nginx/modules/
[root] $

Burada hiçbir şey yok, çünkü kullandığımız resmi önceden derlenmiş yapı, ikilinin kendisinde derlenmiş birinci taraf, isteğe bağlı modüllerin çoğuna sahip. Nginx -V kullanılarak ikilimizin nasıl yapılandırıldığına bakarak kurulan modülleri görebiliriz:

[root] $ nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

Son satır (yapılandırma argümanları bir) bize pek çok bilgi sağlar, ancak maalesef okunması zor. Tüm –with – * _ modül satırlarını elde etmek için bazı komutları birbirine zincirleyelim:

[root] $ nginx -V 2>&1 | tr -- - '\n' | grep _module
http_addition_module
http_auth_request_module
http_dav_module
http_flv_module
http_gunzip_module
http_gzip_static_module
http_mp4_module
http_random_index_module
http_realip_module
http_secure_link_module
http_slice_module
http_ssl_module
http_stub_status_module
http_sub_module
http_v2_module
mail_ssl_module
stream_realip_module
stream_ssl_module
stream_ssl_preread_module

Bu, ikili olarak derlenen tüm ek modüllerin bir listesidir ve bu modüllerde tanımlanan yönergeler, bunları load_module yönergesi kullanılarak yapılandırmamıza yüklemeye gerek kalmadan bizim için kullanılabilir.

Şu anda mevcut olan modüller hakkında kabaca bir fikrimiz göre göre, dinamik modüller kullanılarak şekerleme eklemeye geçmeye hazırız.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.