Nginx基础一

  吴光科老师公开课的内容。
  Nginx特点是占有内存少,并发能力强。是俄罗斯工程师开发的,最早是用于邮件服务器,由于其性能强大,现在常用作WEB 服务器和 反向代理 服务器。

  Nginx由内核+模块组成。内核设计的微小简洁,完成工作很简单,查找配置文件将客户请求映射到一个location(url匹配),而这个location中配置的指令将启用不同的模块去完成相应的工作。

 

  Nginx的模块从结构上可以分成核心模块
  核心模块:HTTP模块、EVENT模块和MAIL模块、基础模块、第三方模块。

  基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块

  第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块

  Nginx采用linux的epoll模型,相当于Apache的select模型,效率更高。select选择句柄时,需要遍历所有的句柄。epoll不需要遍历,是事件相应的,效率更高。


  用C语言编写,可以基于lua语言二次开发,国内openrestry。


  首先需要安装pcre库,安装pcre支持rewrite库,也可以安装源码,安装源码时,指定pcre路径为解压源码的路径,而不是编译后的路径,否则会报错。
  yum install vim gcc telnet lrzsz openssl openssl-devel pcre pcre-devel
  下载Nginx源码包
  wget -c http://nginx.org/download/nginx-1.9.10.tar.gz
  创建nginx用户,并且设置为不能登录
  useradd -r -s /sbin/nologin nginx
  解压,进入解压目录,准备预编译,编译
  tar xf nginx-1.9.10.tar.gz
  cd nginx-1.9.10
  编译,预编译
  ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

  使用--help查看更多的编译参数。--prefix编译后的目录,--with-http_ssl_module支持https, --with-http_stub_status_module统计访问量。


  检查nginx配置文件是否正确,返回OK即正确。
  /usr/local/nginx/sbin/nginx -t
  启动,检测nginx
  /usr/local/nginx/sbin/nginx,使用ps -ef |grep nginx查看是否已有nginx的进程在运行。

 

  nginx -v 查看版本号
  nginx -V 查看已有的模块信息,编译新版本的nginx时需要带上原有的参数,否则会丢失已有的功能。
  下载tar包,解压,进入指定目录后make就可以,不需要install。
  kill -USR2 `cat /usr/local/nginx/nginx.pid`,生成新的pid。
  kill -QUIT `cat /usr/local/nginx/nginx.pid.oldbin`,关闭旧的nginx。
  /usr/local/nginx/sbin/nginx -s reload,/usr/local/nginx/sbin/nginx -v查看版本号

 

posted on 2020-08-15 10:35  lnlvinso  阅读(167)  评论(0编辑  收藏  举报