使用Nginx的原因:

    原因一:IO多路复用epoll


        1、什么是IO多路复用


                  多个描述符的I/O操作都能在一个线程内并发交替地书讯完成,这就叫I/O多路复用。这里的”复用“指的是复用同一个线程。


                例如:一个老师给一个班级的学生解答问题的方式:

                            第一种:老师按顺序去问学生是否做完,这样先做完但是顺序排在后面的同学会等待。

                            第二种:老师按照学生做完的先后顺序进行解答。


                第二种:老师代表的是一个线程,学生代表的是多个描述符的I/O操作。

        2、什么是epoll

                IO多路复用的实现方式:select、poll,epoll。


                select 最早出现,是线性遍历,需要遍历整个列表,以准备唤醒对应的进程去完成数据拷贝。


                缺点: 1、效率低下。2、描述符限制是1024个。

                epoll:


                        1、当每个FD就绪的时候,采用系统的回调函数之间将FD放入,效率更高


                        2、最大连接无限制。


                Nginx,采用epoll


    原因二:轻量级


            功能模块少,代码模块化。

    原因三:CPU亲和


            是一种把CPU核心和Nginx工作进程绑定的方式,把每一个worker进程固定在一个cpu上进行,减少切换cpu的cache
miss ,获得更好的性能

    原因四:sendfile                             零拷贝,file->内核->socket




更新一下安装方式:yum安装nginx,

            首先安装nginx的依赖环境

            在/etc/yum.repos.d  目录下创建 nginx.repo文件


            输入命令:touch   nginx.repo

            上官网 http://nginx.org/en/linux_packages.html#stable 拷贝对应linux版本的yum源

            本服务器是centos7.4,所以对应的yum如下,将下面这段拷贝到创建的  nginx.repo 中
[nginx] name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=0
enabled=1
            输入yum list | grep nginx 可以查看yum版本

            执行yum install nginx 安装完毕。


            执行nginx -v 即可看到安装的版本

一、yum安装之后的目录详解

            路径 
                                               类型                           
                        作用  

/etc/logrotate.d/nginx                             配置文件                   
                    nginx日志轮转,用于logrotate服务的日志切割





-----------------------------------------------------------------------------------------------------------------------------

/etc/nginx/

etc/nginx/conf.d                                   目录、配置文件               
                    nginx主配置文件

/etc/nginx/conf.d/default.conf

/etc/nginx/nginx.conf


------------------------------------------------------------------------------------------------------------------------------

/etc/nginx/fastcgi_params

/etc/nginx/scgi_params                       
配置文件                                        cgi配置相关,fastcgi配置

/etc/nginx/uwsgi_params




------------------------------------------------------------------------------------------------------------------------------
/etc/nginx/koi-utf
/etc/nginx/koi-win                               
配置文件                                        编码转换映射转化文件(很少用到)
/etc/nginx/win-utf



------------------------------------------------------------------------------------------------------------------------------

/etc/nginx/mime.types                       
配置文件                                       设置HTTP协议的Content-Type与拓展名对应关系




------------------------------------------------------------------------------------------------------------------------------
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug                             
配置文件                      用于配置出系统守护进程管理器的管理方式      
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service

------------------------------------------------------------------------------------------------------------------------------


/usr/lib64/nginx/modules                            目录



/etc/nginx/modules                                                                         
  Nginx目录模块



------------------------------------------------------------------------------------------------------------------------------


/usr/sbin/nginx                                           
命令                            Nginx服务的启动管理的终端命令
/usr/sbin/nginx-debug


------------------------------------------------------------------------------------------------------------------------------


/usr/share/doc/nginx-1.15.0                        文件、目录


/usr/share/doc/nginx-1.15.0/COPYRIGHT


/usr/share/man/man8/nginx.8.gz                                                 
  Nginx的手册和帮助文件


------------------------------------------------------------------------------------------------------------------------------


/var/cache/nginx                                           
目录                                Nginx的缓存目录




------------------------------------------------------------------------------------------------------------------------------

/var/log/nginx                                               
目录                                Nginx的日志目录




------------------------------------------------------------------------------------------------------------------------------







二、安装编译参数

            nginx -V :会出现如下信息

        


-prefix=/etc/nginx 
--sbin-path=/usr/sbin/nginx 
--modules-path=/usr/lib64/nginx/modules 
--conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log                        
                                    安装目录或者路径
--http-log-path=/var/log/nginx/access.log 
--pid-path=/var/run/nginx.pid


--lock-path=/var/run/nginx.lock




------------------------------------------------------------------------------------------------------------------------------

--http-client-body-temp-path=/var/cache/nginx/client_temp 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp 

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp                            执行对应模块时,Nginx所保留的临时性文件
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp



------------------------------------------------------------------------------------------------------------------------------


--user=nginx 


--group=nginx                                                                                             设定Nginx的进程启动的用户和组用户





------------------------------------------------------------------------------------------------------------------------------


--with-cc-opt                                                                                         
      C语言编译



------------------------------------------------------------------------------------------------------------------------------


--with-ld-opt=                                                                                             
  设置附加的参数,链接系统库



------------------------------------------------------------------------------------------------------------------------------


三、进入Nginx主目录

    vim /etc/nginx/nginx.config





从上到下依次:

     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                                  '$status $body_bytes_sent "$http_referer" '
                                  '"$http_user_agent" "$http_x_forwarded_for"';


    access_log  /var/log/nginx/access.log  main;

    定义日志类型





------------------------------------------------------------------------------------------------------------------------------

                                超时时间



------------------------------------------------------------------------------------------------------------------------------



                子配置文件




------------------------------------------------------------------------------------------------------------------------------



进入到子配置文件:

    命令   : vi /etc/nginx/conf.d/default.conf 








------------------------------------------------------------------------------------------------------------------------------

从上到下依次:

                列 
                                                                                        
 作用 


      listen     
 80;                                                                   
            监听的端口
    server_name  localhost; 
                                                               用域名方式访问的地址



------------------------------------------------------------------------------------------------------------------------------
location /
{                                                                                 
  一个server里可以有多个location,当这是/的时候,
        root 
 /usr/share/nginx/html;                                               
root是存放首页的路径
        index  index.html
index.htm;                                                访问的页面,访问index.html
    }


------------------------------------------------------------------------------------------------------------------------------
error_page   500 502 503 504 404 
/50x.html;                             当访问错误的时候,会显示的页面   
    location = /50x.html
{                                                                
        root 
 /usr/share/nginx/html;                                                 root是存放页面的路径

    }


------------------------------------------------------------------------------------------------------------------------------
          

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信