Nginx离线安装与在线(yum)安装
一、NGINX版本简介:
nginx的版本分为开发版、稳定版和过期版,nginx可以作为http服务器,也可以作为反向代理服务器或者邮件服务器,能够快速的响应静态网页的请求,支持FastCGI/SSL/Virtual Host/URL Rwrite/Gzip/HTTP Basic Auth等功能,并且支持第三方的功能扩展。 二、NGINX安装方式: nginx安装可以使用yum(在线安装)或源码安装,推荐使用源码,一是yum的版本比较旧,二是使用源码可以自定义功能,方便业务的上的使用,源码安装需要提前准备标准的编译器
三、离线安装: nginx-1.8.1.tar.gz
openssl-1.0.1c.tar.gz(传输通道加密使用) pcre-8.37.zip(正则表达式使用) 1、环境准备:先安装准备环境
yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
或下载响应包自己安装。。。。此处不做过的介绍 2、上传nginx压缩包并安装:
[root@sdn ~]# tar xvf nginx-1.8.1.tar.gz [root@sdn ~]# cd nginx-1.8.1 [root@sdn nginx-1.8.1]$ ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
3、编译nginx:make
编译是为了检查系统环境是否符合编译安装的要求,比如是否有gcc编译工具,是否支持编译参数当中的模块,并根据开启的参数等生成Makefile文件为下一步做准备: [root@sdn nginx-1.8.1]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre 结果如下:
4、生成脚本及配置文件:make
编译步骤,根据Makefile文件生成相应的模块
5、安装:make install 通过执行后无报错信息即安装成功
安装后生产目录备注说明:nginx完成安装以后,有四个主要的目录:
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。 6、启动
[root@sdn sbin]# /usr/local/nginx/sbin/nginx/nginx
nginx: [emerg] getpwnam(\ #没有nginx用户
[root@sdn sbin]# /usr/local/nginx/sbin/nginx/nginx
nginx: [emerg] mkdir() \ #目录不存在
[root@sdn sbin]# /usr/local/nginx/sbin/nginx/nginx #直到没有报错,才算启动完成 或
[root@sdn sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
7、重读配置文件和关闭服务:
[root@sdn local]# /usr/local/nginx/sbin/nginx/nginx #启动服务
[root@sdn local]# /usr/local/nginx/sbin/nginx/nginx -s reload #不停止服务重读配置文件 [root@sdn local]# /usr/local/nginx/sbin/nginx/nginx -s stop #停止服务 #停止服务 8、检查nginx进程及端口
[root@sdn sbin]# ps -ef | grep nginx
root 3248 1 0 Mar23 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx/nginx #nginx的主进程,只有一个主进程
nginx 3229 3248 0 Mar23? 00:00:00 nginx: worker process #nginx工作进程,默认只有一个,可以通过修改nginx.conf中的worker_processes 1; 参数启动多个工作进程 root 3295 1400 0 00:01 pts/0 00:00:00 grep --color=auto nginx
[root@sdn local]# lsof -i:80 #显示占用80的进程
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 3337 root 6u IPv4 5932680 0t0 TCP *:80 (LISTEN) nginx 3338 nginx 6u IPv4 5932680 0t0 TCP *:80 (LISTEN)
8、通过给nginx的主进程ID号发送信号启动或停止nginx: 获取nginx主进程号的办法:
[root@sdn nginx]# cat /var/run/nginx/nginx.pid #查看nginx的pid文件,此文件保存的就是nginx的主进程id
13337 #次ID是随机的,每次启动都不一样的
[root@sdn nginx]# ps -ef | grep nginx #过滤nginx的进程号
root 41705 1 0 00:05 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx/nginx
nginx 21569 417050 10:58 ? 00:00:00 nginx: worker process 支持的信号:
[root@sdn nginx]# kill -QUIT 41705#平缓关闭Nginx,即不再接受新的请求,但是等当前请求处理完毕后再关闭Nginx。
[root@sdn nginx]# kill -TERM 21665 #快速停止Nginx服务
[root@sdn nginx]# kill -HUP 41705#使用新的配置文件启动进程然后平缓停止原有的nginx进程,即平滑重启。
[root@sdn nginx]# kill -USR1 41705#重新打开配置文件,用于nginx 日志切割 日期切割的脚本: #!/bin/bash
PID=`cat /var/run/nginx/nginx.pid`