美文网首页
linux 安装Nginx(增加第三方模块)

linux 安装Nginx(增加第三方模块)

作者: 许俊贤 | 来源:发表于2019-02-02 14:46 被阅读0次

安装Nginx

安装Nginx依赖

yum更新

可执行以下命令:

升级所有包同时也升级软件和系统内核

yum -y update

只升级所有包,不升级软件和系统内核

yum -y upgrade

gcc安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

pcre pcre-devel安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

备注:以上依赖可一次性安装

yum -y install gcc pcre-devel openssl-devel zlib-devel

jemalloc(更好的内存管理)[可选择安装]

wget http://www.canonware.com/download/jemalloc/jemalloc-4.0.4.tar.bz2
tar -jxvf jemalloc-4.0.4.tar.bz2 && cd jemalloc-4.0.4
./configure
make && make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig

备注:如果解压失败,遇到如下问题

tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

解决方法:安装bzip2

yum install bzip2

Lua模块 [可选择安装]

lua-nginx-module来自大牛agentzh的开源项目,在Nginx中嵌入Lua语言,使之可以支持强大Lua语法

  1. 下载LuaJIT2.0并安装

切换到上级目录

cd ..
wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar -zxvf LuaJIT-2.0.4.tar.gz && cd LuaJIT-2.0.4
make && make install
  1. 下载并解压ngx_devel_kit和lua-nginx-module

切换到上级目录

cd ..
wget https://codeload.github.com/simpl/ngx_devel_kit/tar.gz/v0.2.19
tar -zxvf ngx_devel_kit-0.2.19.tar.gz
wget https://codeload.github.com/openresty/lua-nginx-module/tar.gz/v0.9.20rc2
tar -zxvf lua-nginx-module-0.9.20rc2.tar.gz

导入环境变量

export LUAJIT_LIB=/usr/local/lib
export LUAJIT_INC=/usr/local/include/luajit-2.0

ngx_cache_purge模块(Nginx清除缓存模块) [可选择安装]

cd ..
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar -zxvf ngx_cache_purge-2.3.tar.gz

下载Nginx安装包

直接下载.tar.gz安装包,地址:https://nginx.org/en/download.html

使用wget命令下载(推荐)。

wget -c zhttps://nginx.org/download/nginx-1.12.2.tar.gz

编译、安装Nginx

使用默认配置

./configure

自定义编译安装Nginx【根据以上可选模块】

./configure \
  --sbin-path=/usr/local/nginx/nginx \
  --conf-path=/usr/local/nginx/nginx.conf \
  --pid-path=/var/run/nginx.pid \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module \
  --with-http_stub_status_module \
  --with-threads \
  --with-stream \
  --with-stream_ssl_module \
  --with-ipv6 \
  --with-http_v2_module \
  --add-module=../ngx_cache_purge-2.3 \
  --add-module=../lua-nginx-module-0.9.20rc2 \
  --add-module=../ngx_devel_kit-0.2.19 \
  --with-ld-opt='-ljemalloc' \
  --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'

使用默认配置

make install

自定义编译安装Nginx【根据以上可选模块】

make -j2 && make install

查找位置

whereis nginx

默认路径位于:/usr/local/nginx

启动

cd /usr/local/nginx/sbin/
./nginx

停止

cd /usr/local/nginx/sbin/
./nginx -s stop

./nginx -s quit

重新加载

cd /usr/local/nginx/sbin/
./nginx -s reload

开启启动

修改文件

即在rc.local增加启动代码就可以了。

vi /etc/rc.local

增加一行 /usr/local/nginx/sbin/nginx

需设置执行权限:

chmod 755 rc.local

以上即完成安装。

yum -y update

日志分割

1、编写自动分割Nginx日志脚本

> #!/bin/bash
> #Rotate the Nginx logs to prevent a single logfile from consuming too much disk space.
> LOS_PATH=/usr/local/nginx/logs
> YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
> mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
> mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
> ## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
> kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

:wq保存,并命名为nginxLogRotate.sh,保存到目录/usr/local/nginx/logs

2、设置Linux定时任务

vi  /etc/crontab

在打开的文件底部添加如下内容

0 0 * * * root /usr/local/nginx/logs/nginxLogRotate.sh

:wq保存,表示配置一个定时任务,定时每天00:00以root身份执行脚本/usr/local/nginx/logs/nginxLogRotate.sh,实现定时自动分割Nginx日志(包括访问日志和错误日志)

至此,就实现了自动分割Nginx日志,Nginx每天都会生成一个新的日志文件。

备注:个人博客同步至简书。

相关文章

  • Nginx编译安装

    一、简介 Nginx编译安装,应当是安装Nginx的最佳方式,因为这样可以通过第三方模块为Nginx增加许多强有力...

  • linux 安装Nginx(增加第三方模块)

    安装Nginx 安装Nginx依赖 yum更新 可执行以下命令: 升级所有包同时也升级软件和系统内核 只升级所有包...

  • 6.Nginx模块学习方法

    Nginx模块 Nginx模块分为 Nginx官方模块 和 第三方模块 , 这里我们拿Nginx官方模块来介绍一下...

  • nginx日志打印response返回内容

    基于nginx打印返回值,此功能在nginx内置的功能中没有,需要安装第三方模块ngx_lua及相关很多模块,如果...

  • yum/brew安装lua-nginx-module

    Linux安装 准备工作 创建工作目录 已经通过yum源安装nginx 安装LuaJIT 下载依赖模块 ngx_d...

  • Nginx添加第三方模块

    由于原生的nginx功能太少,有时候为了实现某些功能,则需要安装第三方模块来实现,但是nginx不支持动态加载模块...

  • nginx内核原理

    Nginx的模块 Nginx由内核和模块组成。 Nginx的模块从结构上分为核心模块、基础模块和第三方模块: 核心...

  • nginx 添加第三方模块

    nginx 添加第三方模块 添加第三方模块 搭建文件服务器 fastdfs + nginx 过程中配置nginx部...

  • [Docker] Docker 之 Nginx环境搭建

    Docker 之 Nginx环境搭建 Nginx 安装教程 Linux 环境 Linux 中安装 安装编译工具及库...

  • python爆破SSH

    这次的脚本需要依赖第三方模块,为了方便在linux上运行。 pexpect库的安装 首先确保linux上安装有py...

网友评论

      本文标题:linux 安装Nginx(增加第三方模块)

      本文链接:https://www.haomeiwen.com/subject/sfpjsqtx.html