- 一键安装脚本(懒人版)
- 安装依赖
- 下载nginx
- 下载nginx(备用)
- 下载插件
- 下载插件(备用)
- 安装luajit
- 安装luajit(备用)
- 安装luajit环境变量
- 添加www用户
- 编译nginx
- nginx命令
- 添加服务
- 开机启动
- 服务命令
- 环境变量配置
- 测试lua
- 动态转发代理
- 基础配置
- 动态转发-list
- 动态转发-verbose
- 动态转发-update_parameters
- 动态转发-down
- 动态转发-up
- 动态转发-add
- 动态转发-remove
- NGINX统计
- 参考
wget "https://gitee.com/dorne/nginx-support/raw/master/install_nginx.sh" && sh install_nginx.sh安装依赖
yum install -y perl-devel zlib-devel pcre pcre-devel gd-devel.x86_64 gcc-c++下载nginx
mkdir tmp && cd tmp wget https://nginx.org/download/nginx-1.18.0.tar.gz && tar -zxvf nginx-1.18.0.tar.gz && rm -f nginx-1.18.0.tar.gz cd nginx-1.18.0 && mkdir srclib && cd srclib下载nginx(备用)
mkdir tmp && cd tmp wget https://gitee.com/dorne/nginx-support/attach_files/881643/download/nginx-1.18.0.tar.gz && tar -zxvf nginx-1.18.0.tar.gz && rm -f nginx-1.18.0.tar.gz cd nginx-1.18.0 && mkdir srclib && cd srclib下载插件
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz && tar -zxvf openssl-1.1.1k.tar.gz && rm -f openssl-1.1.1k.tar.gz wget https://github.com/vision5/ngx_devel_kit/archive/v0.3.1.tar.gz && tar -zxvf v0.3.1.tar.gz && rm -f v0.3.1.tar.gz wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14.tar.gz && tar -zxvf v0.10.14.tar.gz && rm -f v0.10.14.tar.gz wget https://github.com/FRiCKLE/ngx_cache_purge/archive/refs/tags/2.3.tar.gz && tar -zxvf 2.3.tar.gz && rm -f 2.3.tar.gz wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz && tar -zxvf master.tar.gz && rm -f master.tar.gz wget https://github.com/alibaba/nginx-http-concat/archive/refs/tags/1.2.2.tar.gz && tar -zxvf 1.2.2.tar.gz && rm -f 1.2.2.tar.gz wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz && tar -zxvf pcre-8.42.tar.gz && rm -f pcre-8.42.tar.gz wget https://github.com/cubicdaiya/ngx_dynamic_upstream/archive/refs/tags/v0.1.6.tar.gz && tar -zxvf v0.1.6.tar.gz && rm -f v0.1.6.tar.gz下载插件(备用)
wget https://gitee.com/dorne/nginx-support/attach_files/881644/download/openssl-1.1.1k.tar.gz && tar -zxvf openssl-1.1.1k.tar.gz && rm -f openssl-1.1.1k.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881637/download/ngx_devel_kit-0.3.1.tar.gz && tar -zxvf ngx_devel_kit-0.3.1.tar.gz && rm -f ngx_devel_kit-0.3.1.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881639/download/lua-nginx-module-0.10.14.tar.gz && tar -zxvf lua-nginx-module-0.10.14.tar.gz && rm -f lua-nginx-module-0.10.14.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881636/download/ngx_cache_purge-2.3.tar.gz && tar -zxvf ngx_cache_purge-2.3.tar.gz && rm -f ngx_cache_purge-2.3.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881638/download/nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz && tar -zxvf nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz && rm -f nginx-goodies-nginx-sticky-module-ng-08a395c66e42.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881635/download/nginx-http-concat-1.2.2.tar.gz && tar -zxvf nginx-http-concat-1.2.2.tar.gz && rm -f nginx-http-concat-1.2.2.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881642/download/pcre-8.42.tar.gz && tar -zxvf pcre-8.42.tar.gz && rm -f pcre-8.42.tar.gz wget https://gitee.com/dorne/nginx-support/attach_files/881634/download/ngx_dynamic_upstream-0.1.6.tar.gz && tar -zxvf ngx_dynamic_upstream-0.1.6.tar.gz && rm -f ngx_dynamic_upstream-0.1.6.tar.gz安装luajit
wget https://github.com/openresty/luajit2/archive/refs/tags/v2.1-20210510.tar.gz && tar -zxvf v2.1-20210510.tar.gz && rm -f v2.1-20210510.tar.gz cd luajit2-2.1-20210510 make make install PREFIX=/usr/local/luajit #二选一 #git clone https://github.com/openresty/luajit2 #cd luajit2 #make #make install PREFIX=/usr/local/luajit安装luajit(备用)
wget https://gitee.com/dorne/nginx-support/attach_files/881640/download/luajit2-2.1-20210510.tar.gz && tar -zxvf luajit2-2.1-20210510.tar.gz && rm -f luajit2-2.1-20210510.tar.gz cd luajit2-2.1-20210510 make make install PREFIX=/usr/local/luajit #二选一 #git clone https://github.com/openresty/luajit2 #cd luajit2 #make #make install PREFIX=/usr/local/luajit安装luajit环境变量
export LUAJIT_LIB=/usr/local/luajit/lib export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1 source /etc/profile ln -s /usr/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2添加www用户
adduser www --system --no-create-home groupadd www --system编译nginx
cd ../.. #可以自定义服务器名称和版本号 vim src/core/nginx.h ./configure --user=www --group=www --prefix=/usr/local/nginx --with-openssl=srclib/openssl-1.1.1k --add-module=srclib/ngx_dynamic_upstream-0.1.6 --add-module=srclib/ngx_devel_kit-0.3.1 --add-module=srclib/lua-nginx-module-0.10.14 --add-module=srclib/ngx_cache_purge-2.3 --add-module=srclib/nginx-goodies-nginx-sticky-module-ng-08a395c66e42 --add-module=srclib/nginx-http-concat-1.2.2 --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_image_filter_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-pcre=srclib/pcre-8.42 make -j2 make installnginx命令
cd /usr/local/nginx/sbin #启动 ./nginx -c /usr/local/nginx/conf/nginx.conf #测试配置 ./nginx -t -c /usr/local/nginx/conf/nginx.conf #重新加载 ./nginx -s reload #快速关闭 ./nginx -s stop #优雅的关闭,优雅是指当一个请求被处理完成之后才被关闭 ./nginx -s quit添加服务
cd /etc/init.d/
vi nginx
#粘贴如下
#!/bin/bash
#Startup script for the nginx Web Server
#chkconfig: 2345 85 15
nginx=/usr/local/nginx/sbin/nginx
conf=/usr/local/nginx/conf/nginx.conf
case $1 in
start)
echo -n "Starting Nginx"
$nginx -c $conf
echo " done."
;;
stop)
echo -n "Stopping Nginx"
killall -9 nginx
echo " done."
;;
test)
$nginx -t -c $conf
echo "Success."
;;
reload)
echo -n "Reloading Nginx"
ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP
echo " done."
;;
restart)
$nginx -s reload
echo "reload done."
;;
*)
echo "Usage: $0 {start|restart|reload|stop|test|show}"
;;
esac
开机启动
chmod 777 ./nginx chkconfig --add /etc/init.d/nginx chkconfig nginx on服务命令
service nginx start service nginx restart service nginx reload service nginx stop service nginx test service nginx show环境变量配置
#环境变量方式 export PATH=$PATH:/usr/local/nginx/sbin/nginx source /etc/profile #软连接方式 ln -s /usr/local/nginx/sbin/nginx /sbin/测试lua
location /hello_lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
动态转发代理
基础配置
upstream backends {
zone zone_for_backends 1m;
server 127.0.0.1:6001;
server 127.0.0.1:6002;
server 127.0.0.1:6003;
}
server {
listen 6000;
location /dynamic {
allow 127.0.0.1;
deny all;
dynamic_upstream;
}
location / {
proxy_pass http://backends;
}
}
动态转发-list
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends" server 127.0.0.1:6001; server 127.0.0.1:6002; server 127.0.0.1:6003;动态转发-verbose
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&verbose=" server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10;动态转发-update_parameters
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&weight=10&max_fails=5&fail_timeout=5" server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6003 weight=10 max_fails=5 fail_timeout=5;动态转发-down
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&down=" server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10 down; $动态转发-up
$ curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&server=127.0.0.1:6003&up=" server 127.0.0.1:6001 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6002 weight=1 max_fails=1 fail_timeout=10; server 127.0.0.1:6003 weight=1 max_fails=1 fail_timeout=10;动态转发-add
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&add=&server=127.0.0.1:6004" server 127.0.0.1:6001; server 127.0.0.1:6002; server 127.0.0.1:6003; server 127.0.0.1:6004;动态转发-remove
curl "http://127.0.0.1:6000/dynamic?upstream=zone_for_backends&remove=&server=127.0.0.1:6003" server 127.0.0.1:6001; server 127.0.0.1:6002; server 127.0.0.1:6004;NGINX统计
1.根据访问IP统计UV
awk '{print $1}' access.log|sort | uniq -c |wc -l
2.统计访问URL统计PV
awk '{print $7}' access.log|wc -l
3.查询访问最频繁的URL
awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more
4.查询访问最频繁的IP
awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more
5.根据时间段统计查看日志
cat access.log| sed -n '/14/Mar/2015:21/,/14/Mar/2015:22/p'|more
参考
配置



