网站菜单

编译安装 Nginx 反向代理具有 pagespeed 等高级功能

Nginx 是一款轻量级的Web服务器、反向代理服务器,特点是内存占用少、启动快、高并发处理能力强,广泛非常应用。本文介绍的是编译安装方式,编译加入了 Naxsi、Replace Filter、Cache Purge、Headers More 和 PageSpeed 这几块常用插件,并且开启了 TCP Stream 特性。

安装依赖

mkdir ~/tmp && cd ~/tmp
apt update -y
apt upgrade -y
apt-get -y install wget curl gcc g++ libssl-dev libgoogle-perftools-dev make build-essential zlib1g-dev libpcre3 libpcre3-dev unzip libpcre3 libpcre3-dev bison git uuid-dev

下载最新版 Nginx

curl "http://nginx.org$(curl -s http://nginx.org/en/download.html | grep -oP 'Stable version.*?\K(/download/.*?tar.gz)')" --output nginx-latest.tar.gz
tar zxvf nginx-latest.tar.gz

下载 Naxsi WAF插件

git clone https://github.com/nbs-system/naxsi.git

下载 Replace Filter 插件

git clone https://github.com/openresty/sregex.git
cd sregex
make && make install
cd ..
git clone https://github.com/openresty/replace-filter-nginx-module.git

下载 Cache Purge 插件

git clone https://github.com/FRiCKLE/ngx_cache_purge.git

下载 Headers More 插件

git clone https://github.com/openresty/headers-more-nginx-module.git

下载 Pagespeed 插件

NPS_VERSION=1.13.35.2
git clone https://github.com/pagespeed/ngx_pagespeed.git
cd ngx_pagespeed
# Revert to Works Version
git checkout v${NPS_VERSION}-stable
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}-x64.tar.gz
tar zxvf ${NPS_VERSION}-x64.tar.gz
cd ..

下载 OpenSSL

wget https://www.openssl.org/source/openssl-1.1.1m.tar.gz
tar zxvf openssl-1.1.1m.tar.gz
rm -f openssl-1.1.1m.tar.gz

编译

cd nginx-1.*
./configure --add-module=../naxsi/naxsi_src \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module \
--with-http_sub_module \
--with-stream \
--with-stream_ssl_module \
--with-openssl=../openssl-1.1.1m \
--with-google_perftools_module \
--with-stream \
--with-http_realip_module \
--with-stream_ssl_preread_module \
--add-module=../ngx_cache_purge \
--add-module=../replace-filter-nginx-module \
--add-module=../ngx_pagespeed \
--with-stream_realip_module \
--add-module=../headers-more-nginx-module
make && make install
ldconfig

创建目录和用户

groupadd www
useradd -s /sbin/nologin -g www www
mkdir -p /var/log/nginx
mkdir -p /usr/local/nginx/conf/stream
mkdir -p /usr/local/nginx/conf/vhost
mkdir -p /home/web/default
chown -R www:www /home/web/default
touch /var/log/nginx/nginx_error.log
touch /var/log/nginx/access_default.log

systemd 自启动

/etc/systemd/system/nginx.service:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
systemctl enable nginx.service
systemctl start nginx.service

 

显示评论 (0)

文章评论

相关推荐

Minio 对象存储进阶:为 Bucket 配置访问策略

这篇文章描述了创建 Minio Bucket(存储桶)、配置存储桶访问策略和设置授权用户(和对应的口令)的方法,这种配置策略支持多个用户,并且根据用户来区分不同存储桶的访问权限。 上篇我们介绍了通过 …

使用 Minio 构建支持通用 S3 协议的对象存储存

做网站用图床是一个常见做法,好处是把静态文件放在一个专门的服务器上分担主站点的流量,通过异步延迟载入图片来优化网站的载入速度,本文介绍 Minio 的基本配置方法。 下载 Minio wget htt…