栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nginx 编译安装

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nginx 编译安装

文章目录
  • 一键安装脚本(懒人版)
  • 安装依赖
  • 下载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 install

nginx命令
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
参考

配置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号