1. Nginx环境搭建

1.1. Nginx简介

Nginx是一款高性能的Web服务器和反向代理服务器软件。

  • Nginx是使用C语言开发的,作为提供Web服务的Web服务器,与Apache相比使用非常少的系统资源,支持更多的TCP/UDP并发链接,因此Nginx在节省资源的同时非常高效;
  • Nginx作为提供负载均衡的服务器,Nginx可以直接内部支持PHP和Rails,同时支持HTTP代理服务器对外向用户提供代理服务。
  • Nginx作为邮件代理服务器,拥有非常优秀的性能。

1.2. Nginx依赖的软件

  • pcre pcre主要提供nginx的rewrite功能
  • openssl openssl提供了nginx的https安全链接的功能
  • zlib zlib提供nginx传输数据时使用gzip压缩功能
  • 其他依赖软件

1.3. yum 快速安装

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1
yum install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel php php-cli php-devel php-fpm php-common nginx -y

1.4. 编译安装

软件下载

http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
http://www.nginx.org/download/nginx-1.8.1.tar.gz
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
https://www.openssl.org/source/old/1.0.2/openssl-1.0.2.tar.gz
http://119.29.227.151/zlib-1.2.11.tar.gz

软件安装

tar xf zlib-1.2.11.tar.gz -C /usr/local/
tar xf openssl-1.0.2.tar.gz -C /usr/local/
tar xf pcre-8.37.tar.gz -C /usr/local/
tar xf tengine-2.2.0.tar.gz
cd tengine-2.2.0
mkdir /usr/local/tengine/
./configure --prefix=/usr/local/tengine \
--with-zlib=/usr/local/zlib-1.2.11  \
--with-openssl=/usr/local/openssl-1.0.2 \
--with-pcre=/usr/local/pcre-8.37
make

注意: pcre这些软件只要解压就可以了,nginx会自动根据路径查找编译安装

1.5. 管理Nginx

nginx动作对应系统信号

stop    SIGTERM 
程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。

quit    SIGQUIT
和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。

reopen  SIGUSR1
留给用户使用

reload  SIGHUP
本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。

登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进 程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也 能继续下载。

此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。

判断配置文件是否正确

/usr/local/nginx/sbin/nginx  -t  -c  /usr/local/nginx/conf/nginx.conf

开启Nginx服务

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

重启进程

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s reload

或者: kill -HUP 主进程号或进程号文件路径,-HUP重新加载配置文件

关闭服务

/usr/local/nginx/sbin/nginx -s quit    完整有序的停止nginx
/usr/local/nginx/sbin/nginx -s stop    快速停止服务

或者

nginx -s stop 快速退出 nginx -s quit 优雅退出 nginx -s reload 更换配置,启动新的工作进程,优雅的关闭以往的工作进程 nginx -s reopen 重新打开日志文件

从容停止 kill -QUIT 主进程号 快速停止 kill -TERM 主进程号 强制停止 kill -9 主进程号只能停止master进程,worker进程还没有kill掉,最好不要这个

1.6. 在线升级

先用新程序替换旧程序文件 kill -USR2 旧版程序的主进程号或者进程文件名,此时旧的nginx主进程会把自己的进程文件改名为.oldbin,然后执行新版nginx,此时新旧版本同时运行

6.[root@localhost sbin]# ./nginx -h
nginx version: nginx/1.8.1
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v              : show version and exit
  -V             : show version and configure options then exit
  -t              : test configuration and exit
  -q             : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

-q : 测试配置文件时只输出错误信息,suppress阻止 -g :设置全局指令,在配置文件外

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-02 10:17:57

results matching ""

    No results matching ""