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

安装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每天都会生成一个新的日志文件。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容