과거 Apache Httpd 를 썼을 때 좋았던 점 중 하나는
컴파일을 다시할 필요 없이 설정으로 필요한 모듈을 Load 할 수 있었던 건데요,
이에 반해 Nginx 는 필요한 모듈이 생길때마다 다시 컴파일 해야하는 것이 매우 불편했습니다.
이랬던 Nginx 가 1.9.11 버전부터 Dynamic Module 을 지원한다는 내용을 보고
얼마나 반가웠는지 모릅니다.
Dynamic Module 은 Nginx 에 필요한 모듈을 shared object (*.so file) 형태로 만들어 사용할 수 있는데요,
NGINX 설정 파일 (nginx.conf) 에서 load_module directive 사용하여 load 할 모듈을 지정하면 컴파일 과정 없이 Runtime 으로 모듈 사용이 가능해집니다.
주의사항으로는 Nginx 와 사용할 Dynamic Module 의 호환성을 위해 configure 옵션으로 '--with-compat' 을 추가해서 빌드를 진행하셔야 합니다.
'--with-compat' 옵션을 안줘도 사용은 가능하지만, 그럴 경우 Nginx 와 Dynamic Module 빌드시 사용한 configure 옵션을 동일하게 맞춰줘야하는 불편함이 생깁니다.
혹시나 아직도 Nginx 의 Static Module 을 사용하고 계신 분들이 있다면
첨부드린 가이드와 Dynamic Module 설명을 한번 참고해보시면 좋겠습니다.
📚 Reference
- Nginx Converting Static Modules to Dynamic Modules Guide: https://www.nginx.com/resources/wiki/extending/converting/
- NGINX Dynamic Modules: How They Work: https://www.nginx.com/blog/nginx-dynamic-modules-how-they-work