Linux上安装nginx,nginx安装


环境:centos7   nginx1.16.1(源码安装)

一、下载nginx源码包

  地址:http://nginx.org/en/download.html

  Mainline version(主线版本)Stable version(稳定版本)Legacy versions(传统老版本)

  下载稳定版:nginx-1.16.1.tar.gz

二、安装相关依赖

  gcc  gcc-c++  zlib  zlib-devel  openssl  openssl-devel  pcre  pcre-devel

  gcc,gcc-c++  #c,c++编译器,用来编译安装

  zlib,zlib-devel  #压缩和解压的函数库,网页文件压缩要用到它

  openssl,openssl-devel  #网络通信安全协议库,包含众多的密码算法、公钥基础设施标准以及SSL协议

三、安装Nginx

  (1).解包

  [root@izm5e8nyz28va3a786y465z src]# tar -zxvf nginx-1.16.1.tar.gz 

  (2).编译配置(进入到解压的文件夹)./configure  --选项   

    ./configure  --prefix=/usr/local/nginx1.16.1  --sbin-path=/usr/sbin/nginx  --conf-path=/etc/nginx/nginx.conf  --error-log-path=/var/log/nginx/error.log  --pid-path=/var/run/nginx/nginx.pid --http-log-path=/var/log/nginx/access.log  --http-client-body-temp-path=/var/tem/nginx/client  --http-proxy-temp-path=/var/tem/nginx/proxy  --http-fastcgi-temp-path=/var/tem/nginx/fcgi  --with-http_ssl_module  --with-http_flv_module  --with-http_gzip_static_module  --with-http_stub_status_module  --with-pcre  --with-openssl

    1. 路径配置(不设置则为默认路径)

    --prefix=/usr/local/nginx1.16.1  #nginx的安装路径,所有其它路径都要依赖该选项

    --sbin-path=/usr/sbin/nginx   #指定nginx二进制文件的路径,不指定则:/usr/local/nginx/sbin/nginx

    --conf-path=/etc/nginx/nginx.conf  #nginx配置文件路径,不指定则:/usr/local/nginx/conf/nginx.conf

    --error-log-path=/var/log/nginx/error.log  #nginx错误日志路径,不指定则:/usr/local/nginx/logs/error.log

    --pid-path=/var/run/nginx/nginx.pid  #pid文件路径,不指定则:/usr/local/nginx/logs/nginx.pid

    --http-log-path=/var/log/nginx/access.log  #http访问日志路径

    --http-client-body-temp-path=/var/tem/nginx/client  #存储客户端请求主主体的临时目录

    --http-proxy-temp-path=/var/tem/nginx/proxy #存储代理服务器接收数据的临时文件 

    --http-fastcgi-temp-path=/var/tem/nginx/fcgi  # 设置存储HTTP fastcgi的临时文件的路径 

    2.模块配置

    --http_v2_module      #用于支持http2协议

    --with-http_ssl_module      #用于支持https协议

    --with-http_flv_module    #视频直播模块

    --with-http_gzip_module   #是nginx默认编译的模块,对网页文件压缩

    --with-http_gzip_static_module   #加载gz静态缓存模块,开启后服务器优先返回gz文件    

    --with-http_stub_status_module  #http服务状态模块

    3. 其它功能启用

    --with-pcre  #开启正则表达式

    --with-openssl  #启用OpenSSL(安全套接字层密码库)启用后可支持https,ssl证书

    3.用户,用户组配置

     --user=www  #nginx工作进程的用户名,默认:user  nobody;

     nobody 是系统用户,是一个不能登陆的帐号,一个特殊用途的用户 ID,uid<500一般都是系统ID

     --group=www   #nginx工作进程的用户组,默认:group  nogroup

        nginx 只有一个主进程和多个工作进程,主进程主要读取和评估配置文件正确性,以及管理工作进程

      工作进程是真正的网络请求处理的进程

   (3)编译 

     make    

   (4)安装

     make  install 

    小技巧:安装nginx后,怎么加入其它没有编译的模块(不重装nginx)

    1.查看编译安装的配置信息:nginx -V

    

    2.进入之前下载并解压了的源码包目录,重新编译nginx  ,在原来配置参数后加上配置信息

     ./configure  --prefix=xxx  ..... 回车,再 make

    3. 将新生成的nginx二进制文件替换掉原来的nginx二进制文件(停止nginx

      先备份原来的二进制文件:#防止失败

     cp  /usr/local/nginx/sbin/nginx   /usr/local/nginx/sbin/nginx.bak  #防止失败

     替换掉原来的二进制文件:新生成的二进制文件  ./objs/nginx

      cp  ./objs/nginx  /usr/local/nginx/sbin

     4. 查看是否成功

      启动nginx   # nginx  -V

四、nginx服务控制

  1. 启动nginx

  [root@izm5e8nyz28va3a786y465z tmp]# nginx

   nginx: [emerg] mkdir() "/var/tem/nginx/client" failed (2: No such file or directory)

  原因:缺少这个文件夹

   创建:mkdir  -p  /var/tem/nginx/client

   修改所有者:chown  nobody  /var/tem/nginx/client

   之后,nginx能正常启动

  

  2. 服务控制

  nginx服务在运行时,会保持一个主进程和一个或多个 worker process 工作进程。可以通过给Nginx服务的主进程发送信号来控制服务

    2种发送信号的方式:nginx二进制文件  或  kill 命令

   nginx命令:

              nginx –s  stop/start/reload/quit    #/停止/启动/重启/请求结束后退出

              nginx -t                #检测配置文件是否正确  

              nginx -v               #查看nginx编译时参数

              nginx -h               #查看nginx命令帮助

    nginx -c filename     #用来指定启动Nginx服务使用的配置文件

    nginx -g directives   #nginx启动时加载补充的配置文件

          kill命令:kill  single  主进程号 (实际使用中多用此种方式)

    PID      #cat  /usr/local/nginx/logs/nginx.pid  命令查看     QUIT     #平缓停止Nginx服务     TERM或INT  #快速停止nginx服务     HUP      #使用新的配置文件启动进程,之后平缓停止原有进程     USR1    #重新打开日志文件,常用于日志切割     USR2    #使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程,也就是’平滑升级‘     WINCH    #平缓停止旧的 worker process,配合USR2平滑升级    常用组合命令:     nginx -HUP  #加载原来的配置文件,平滑重启     nginx -HUP -c newConfFile  #加载新的配置文件,平滑重启     nginx -g -HUP -c newConfFile #加载新的配置文件,平滑重启,若新的配置文件有错误,则报错,并以老的配置文件启动nginx     nginx  -tc  filename    #检测指定nginx配置文件      例:[root@izm5e8nyz28va3a786y465z ~]# kill -HUP  6635     3. nginx服务器升级      如果要对当前的Nginx服务器进行版本升级,应用新模块,最简单的办法是停止当前Nginx服务,然后开启新的Nginx服务,但这样就会导致在一段时间内,用户无法访问服务器。    为了解决这个问题,Nginx服务器提供平滑升级的功能      平滑升级的过程:Nginx服务接收到 USR2 信号后,首先将旧的 nginx.pid文件(如果在配置文件中更改过这个文件的名字,也是相同的过程)添加后缀 .oldbin,变成 nginx.pid.oldbin 文件;    然后执行新版本Nginx服务器的二进制文件启动服务。如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。之后,需要向旧的Nginx服务进程发送 WINCH 信号,    使旧的Nginx服务平滑停止,并删除 nginx.pid.oldbin文件。在发送 WINCH 信号之前,可以随时停止新的 Nginx服务。       注意:为了实现Nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此在安装新服务器之前先备份旧服务器。由于某些原因无法保证新旧服务器安装路径一致,    则可以先使用以下命令将旧服务器的安装路径更改为新服务器的安装路径:    nginx -p newInstallPath  newInstallPath为新服务器的安装路径。之后备份旧服务器安装新服务器即可    做好准备工作后,使用以下命令实现Nginx服务的平滑升级:    nginx -g USR2 或 kill USR2 '/Nginx/logs/nginx.pid'    其中,USR2信号用于发送平滑升级信号,或者使用:    通过 ps -ef | grep nginx 查看新的Nginx服务启动正常,再使用    nginx -g WINCH --------其中 WINCH 信号用于发送平滑停止旧服务信号,或者 使用:    kill WINCH '/Nginx/logs/nginx.pid'    这样就在不停止提供 Web 服务的前提下完成了 Nginx 服务器的平滑升级     

 

 

 

 

 

 

 

 

 

 

 

 

相关内容

    暂无相关文章