安装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语法
- 下载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
- 下载并解压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每天都会生成一个新的日志文件。
备注:个人博客同步至简书。