如何安装 NGINX Substitutions Filter 模块

若对一个网站做镜像,可以采用反向代理的方式,但可能存在其 HTML 代码包含有其原域名的信息,需要对其网站内容做替换,以达到完全镜像的目的,这里就可以使用到 NGINX Substitutions Filter 模块。

安装

NGINX 默认是不带 Substitutions Filter 模块的,所以需要进行编译安装。首先需要下载 NGINX 的源码和一些依赖一起编译,首先,需要安装一些编译的软件和 Git:

sudo apt update
sudo apt install build-essential git gcc g++ make

接着,下载 NGINX 源码,依赖和模块代码:

wget http://nginx.org/download/nginx-1.16.1.tar.gz
wget http://ftp.cs.stanford.edu/pub/exim/pcre/pcre-8.41.tar.gz 
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz
wget http://zlib.net/zlib-1.2.13.tar.gz
git clone https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git

解压出来:

tar xzvf nginx-*.tar.gz
tar xzvf pcre-*.tar.gz
tar xzvf openssl-*.tar.gz
tar xzvf zlib-*.tar.gz

然后编译安装:

cd nginx-1.16.1

# 配置编译选项
./configure --prefix=/usr/local/src/nginx --with-pcre=../pcre-8.41 --with-openssl=../openssl-1.1.1c --with-zlib=../zlib-1.2.13 --with-http_ssl_module --add-module=../ngx_http_substitutions_filter_module --with-http_v2_module

# 编译并安装
make
sudo make install

# 创建程序  link 到 /usr/local/sbin/
sudo ln -sb /usr/local/src/nginx/sbin/nginx /usr/local/sbin/nginx
# 创建配置 link 到 /etc/nginx
sudo ln -s /usr/local/src/nginx/conf /etc/nginx
# 创建日志 link 到 /var/log
sudo ln -s /usr/local/src/nginx/logs /var/log/nginx

创建 NGINX service, sudo vim /etc/systemd/system/nginx.service,将下面内容贴入:

[Unit]
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/usr/local/sbin/nginx -s stop

[Install]
WantedBy=multi-user.target

启动服务 ,设置开机自启。

sudo systemctl start nginx
sudo systemctl enable nginx

这样就安装完成了,明天将以一个例子,详细说明一下做一个网站镜像的方法和 Substitutions Filter 模块的使用。 敬请期待!