nginx使用rewrite报错怎么解决

更新时间:2023-05-30 11:18:44

今天编译安装nginx的时候想着要做rewrite功能,匆忙瞟了一眼编译文档就直接make&&make install了,然后再修改配置文件的时候一直报错,语法死活过不去。现在记录一下本次报错的情况。

问题描述

由于本人的英语不怎么好,看了一下help文档,一个without开头的和一个disable开头的,想都没想直接添加了without开头的模块,噩梦就此开始。

配置好文件的时候我依旧信心满满的./sbin/nginx -t 检查语法,嗯?报错了,意料之中,可能是那里配置写错了,可是当我检查了一遍又一遍的时候,开始慌了。


原因分析:

首先根据提示我们知道nginx无法解析rewrite,(未知的指令“rewrite”),我想着应该是模块没装,或者其依赖pcre、pcre-devel没装(大家排查的时候也可以看看这两个依赖)。然后我检查了一下依赖(图一)。确实好像没啥问题,该装的都装了。我知道肯定是编译或者依赖的问题,然后我就打开了百度。

图   一

解决方案:

紧接着找到了这么一句话,默认参数编译nginx就会支持rewrite的模块。然后我忽然想起来without是除什么之外,难不成我这个是把rewrite功能关掉了!然后我就直接编译安装,什么参数也没加,果然,successful!

呵呵!被自己蠢哭了,顺便分享一下我找到的一个关于nignx的编译的小知识。

在"./configure"配置中,"--with"表示启用模块,也就是说这些模块在编译时不会自动构建"--without"表示禁用模块,也就是说这些模块在编译时会自动构建,若你想Nginx轻量级运行,可以去除一些不必要的模块。

Nginx rewrite