首先需要注意的自己默认安装编译的Nginx是带有request_auth认证模块,不需要手动开启。
但宝塔的默认编译是没有开启request_auth认证模块,所以需要自己手动进行修改编译文件。
该模块不是默认构建的,需要通过 --with-http_auth_request_module
配置参数启用。需要在 configure 的时候指定开启。
这个configure是在编译时进行使用的命令,所以安装编译过Nginx通过控制台命令行是不能用使用./configure命令的。
官方宝塔有一个较为全面的教程:如何给nginx添加第三方模块(geoip) - Linux面板 - 宝塔面板论坛
这里演示自己如何宝塔nginx怎么装auth_request模块:
-
首先可以先控制台查看nginx -V,看一下自己的nginx安装了哪些模块(不过我这里已经添加上了--with-http_auth_request_module):
-
打开宝塔打开文件位置:/www/server/panel/install(通过宝塔安装的Nginx一般是这里的目录)
-
双击打开nginx.sh,ctrl+f进行搜索./configure
-
打开后找到这个配置,在后面添加上--with-http_auth_request_module:
-
保存退出,执行安装命令sh /www/server/panel/install/nginx.sh install 1.24.0
-
sh /www/server/panel/install/nginx.sh install Nginx版本号,这里我的是1.24.0,看自己的版本。
-
-
安装完成输入nginx -V 检查编译参数有没有成功。
-
然后在配置nginx.conf就可以添加request_auth认证模块,而不会报错ERROR: nginx: [emerg] unknown directive "auth_request" :