设为首页 收藏本站
查看: 724|回复: 0

[经验分享] Nginx服务器的安装配置

[复制链接]
发表于 2018-11-10 07:46:21 | 显示全部楼层 |阅读模式
  本笔记是以CentOS 操作系统为基础,参考张宴的《实战Nginx取代Apache的高性能Web服务器》一书,里面有个人经验,本博文最后有一个添加Nginx服务控制脚本,是张宴一书没有的。
  
---------------------------------------------------
  
1.确保操作系统安装有GCC编译器。
  
GCC编译器及相关工具:GCC全称为GNU Compiler Collection,是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的代表作品之一,目前可以编译的语言包括:C、C++、Objective-C、Fortran、Java等。您必须确保您的操作系统安装有GCC编译器。
  
另外,还必须安装Autoconf 和 Automake工具,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。在CentOS系统下,使用yum命令安装GCC编译器及相关工具。
  


  • yum -y install gcc gcc-c++ autoconf automake
  

  2.模块依赖性:Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。同样,在CentOS系统下,使用yum命令安装或下载源码包编译安装这些模块依赖的库。
  


  • yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
  

  3.Nginx的最简单安装命令如下。
  


  • tar   zxvf   nginx-x.x.xx.tar.gz     (x.x.xx:为版本号)
  • cd   nginx-x.x.xx.tar.gz
  • ./configure --with-http_stub_status_module
  • make
  • make install
  
按照以上命令,Nginx将被默认安装到/usr/local/nginx目录下。
  

  4.Nginx的configure脚本支持的选项。(可以通过  ./configure  --help命令查看Nginx可选择的编译选项,以下仅列出本人比较常用的选项
  


  • --prefix=   ——Nginx安装路径,如果没有指定,默认为  /usr/local/nginx
  • --sbin-path=  ——Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为/sbin/nginx
  • --conf-path=  ——在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为/conf/nginx.conf
  • --pid-path=  ——在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为/logs/nginx.conf
  • --error-log-path=  ——在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为/logs/error.log
  • --http-log-path=  ——在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为/logs/access.log
  • --user=  ——在nginx.conf中没有指定user指令的情况下,默认的Nginx使用的用户。如果没有指定,默认为nobody
  • --group=  ——在nginx.conf中没有指定user指令的情况下,默认的Nginx使用的组,如果没有指定,默认为nobody
  • --with-http_ssl_module  ——开启HTTP SSL模块,使Nginx可以支持HTTPS请求。这个模块需要已经安装 openssl ,在debian上是libssl
  • --with-http_dav_module  ——启用ngx_http_dav_module
  • --with-http_flv_module  ——启用ngx_http_flv_module
  • --with-http_gzip_module  ——启用ngx_http_gzip_module,需要zlib库的支持
  • --with-http_stub_status_module  ——启用“server status”统计页
  • --with-http_referer_module  ——启用ngx_http_referer_module,当浏览器向web服务器发送请求的时候,一般会带上referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理
  • --with-http_rewrite_module  ——启用ngx_http_rewrite_module,需要pcre库的支持
  • --with-http_proxy_module  ——启用ngx_http_proxy_module
  • --with-http_fastcgi_module  ——启用ngx_http_fastcgi_module
  • --http-client-body-temp-path=PATH  ——指定http客户端请求缓存文件存放目录的路径
  • --http-proxy-temp-path=PATH  ——指定http反向代理缓存文件存放目录的路径
  • --http-fastcgi-temp-path=PATH  ——指定http FastCGI缓存文件存放目录的路径
  • --with-mail  ——启用IMAP4/POP3/SMTP 代理模块
  • --with-mail_ssl_module  ——启用ngx_mail_ssl_module
  • --with-cpu-opt=CPU  ——为特定的CPU编译,有效的值包括:pentium 、pentiumpro 、pentium3 、pentium4 、athlon 、opteron 、amd64 、sparc64 、ppc64
  • --with-pcre=DIR  ——指定PCRE库的源代码的路径
  • --with-pcre-opt=OPTIONS  ——设置PCRE的额外编译选项
  • --with-md5=DIR  ——设置MD5库的源代码路径
  • --with-md5-opt=OPTIONS  ——设置MD5库的额外编译选项
  • --with-md5-asm  ——使用MD5汇编源码
  • --with-sha1=DIR  ——设置sha1库的源代码的路径
  • --with-sha1-opt=OPTIONS  ——设置sha1库的额外编译选项
  • --with-sha1-asm  ——使用sha1汇编源码
  • --with-zlib=DIR  ——设置zlib库的源代码路径
  • --with-zlib-opt=OPTIONS  ——设置zlib库的额外编译选项
  • --with-openssl=DIR  ——设置openssl库的源代码路径
  • --with-openssl-opt=OPTIONS  ——设置openssl库的额外编译选项
  • --with-debug  ——启用调试日志
  • --add-module=PATH  ——添加一个在指定路径中能够找到的第三方模块
  

  在不同版本间,选项可能会有些许变化,请总是使用  ./configure  --help  命令来检查当前的选项列表。
  5.Nginx的启动。
  
启动Nginx,可以执行以下命令。假设Nginx安装在/usr/local/nginx目录中,那么启动Nginx的命令就是:
  


  • /usr/local/nginx/sbin/nginx  -c  /usr/local/nginx/conf/nginx.conf
  
参数“-c”指定了配置文件的路径,如果不加“-c”参数,Nginx会默认加载其安装目录的conf子目录中的nginx.conf文件,在本来中即:/usr/local/nginx/sbin/nginx -c /conf/nginx.conf   。
  

  6.查看Nginx的主进程号:
  


  • ps  -ef  |  grep  nginx
  

DSC0000.png

  从上图中可以看到,1个Nginx进程的备注信息为“master  process”,表示它为主进程,另外的4个进程备注信息为“workers  process”,表示它们为子进程。
  7.检查Nginx的配置文件。
  
确认Nginx配置文件(nginx.conf)语法的正确性,是启动、重启Nginx的前提,使用以下命令检查:
  


  • /usr/local/nginx/sbin/nginx –t
配置文件正确,屏幕将提示以下两行信息:  
DSC0001.png
  

  配置文件错误,屏幕将会提示配置文件的第几行出错:
  
DSC0002.png
  8.使用系统信号控制Nginx进程。
  
Nginx通过识别标准的系统信号来控制进程状态。如:HUP、QUIT、TERM、INT等。(可以使用“kill  -l”命令查看可用的进程控制信号列表)
  


  • killall  -s   HUP  nginx       //重新加载配置文件,等同于“killall  -1  nginx”
  • killall  -s   QUIT  nginx      //安全退出,等同于“kill –3  nginx”
  • killall  -s   TERM  nginx    //快速退出,不等待处理完当前连接
  

  9.添加Nginx服务控制脚本。
  
考虑到CentOS的使用习惯,可以添加一个Nginx服务脚本,以便使用chkconfig和service命令管理Nginx服务。(本脚本在RHEL上可以使用)
  


  • vi  /etc/init.d/nginx

  • #!/bin/sh
  • #chkconfig: – 90 20
  • #description: Nginx Server Control Script
  • #          //如需使用chkconfig管理,注意以上两行内容不可少
  • case “$1” in
  •     start)
  •           /usr/local/nginx/sbin/nginx
  •           ;;
  •     stop)
  •          /usr/bin/killall  -s  QUIT  nginx
  •          ;;
  •     restart)
  •         $0  stop
  •         $0  start
  •          ;;
  •     reload)
  •          /usr/bin/killall   -s   HUP  nginx
  •          ;;
  •     *)
  •                    echo “Usage: $0 {start|stop|restart|reload}”
  •                    exit  1
  • esac
  • exit  0

  • chmod  a+x  /etc/init.d/nginx     //添加执行权限
  • chkconfig  --level  2345  nginx  on    //设置开机启动
  

  以上Nginx脚本可以通过service命令进行管理控制。
  


  • service  nginx  stop     //关闭
  • service  nginx  start    //启动
  • service  nginx  restart  //重启
  • service  nginx  reload   //重新加载
  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-633031-1-1.html 上篇帖子: nginx proxy_pass后的url加不加/的区别 下篇帖子: nginx编译安装和常规配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表