我需要ngx_http_limit_req_module
在 Ubuntu Bionic 上安装 nginx。
我确实到处都找到了配置示例,但我找不到如何安装或在哪里可以得到这个预构建模块。如果我查看 gitlab 上的源代码,我确实会在目录中找到它modules/
,但如果我运行nginx -V
它,它就不在那里。我也使用来自 nginx-stable ( ) 的给定存储库https://nginx.org/packages/ubuntu/ bionic nginx
,但我更喜欢来自默认 bionic 存储库的 nginx 包。
我对 nginx 生态系统还很陌生,因此非常感谢您的帮助。
或者它已经被编译进去了,而且对每个人来说都很明显(除了我),以至于执行时不会显示出来nginx -V
?
提前感谢 :)
答案1
我现在已经试用过了,开箱即用。至少使用 Ubuntu Bionic 存储库中的普通 nginx 包(不是 nginx-full 或 nginx-extras...它们也应该可以工作)。它是 nginx 版本1.14.0
。
的输出nginx -V
是
nginx version: nginx/1.14.0 (Ubuntu)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2
-fdebug-prefix-map=/build/nginx-GkiujU/nginx-1.14.0=.
-fstack-protector-strong -Wformat -Werror=format-security
-fPIC -Wdate-time -D_FORTIFY_SOURCE=2'
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC'
--prefix=/usr/share/nginx
--conf-path=/etc/nginx/nginx.conf
--http-log-path=/var/log/nginx/access.log
--error-log-path=/var/log/nginx/error.log
--lock-path=/var/lock/nginx.lock
--pid-path=/run/nginx.pid
--modules-path=/usr/lib/nginx/modules
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--with-debug --with-pcre-jit
--with-http_ssl_module
--with-http_stub_status_module
--with-http_realip_module
--with-http_auth_request_module
--with-http_v2_module
--with-http_dav_module
--with-http_slice_module
--with-threads
--with-http_addition_module
--with-http_geoip_module=dynamic
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_image_filter_module=dynamic
--with-http_sub_module
--with-http_xslt_module=dynamic
--with-stream=dynamic
--with-stream_ssl_module
--with-mail=dynamic
--with-mail_ssl_module
因此,没有迹象表明模块目录中ngx_http_limit_req_module
也没有.so
文件,但它正在运行。因此,它认为它以某种方式位于 nginx 的核心中。
例如,您会ngx_http_geoip_module.c
在 nginx 源代码的模块目录中找到(Github 中的镜像:https://github.com/nginx/nginx/tree/master/src/http/modules),您需要像上面那样指定。但是在同一目录中还有模块ngx_http_limit_req_module.c
,您不需要指定那个模块……因此,在配置 nginx 时完全不清楚需要指定哪个模块。
也许这会帮助某些人节省研究时间。
干杯!