2021最新版 => Nginx简介与配置(小白入门篇1)

架构详解

  • nginx的web优势解析
  • Yum  Install 安装方法
    • nginx的模块及编译参数
    • nginx的配置文件
  • 做一个自己的小网站

Nginx(engine x)

简介:是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,也是一个IMAP/POP3/SMTP服务器(邮局服务器) C10K => connection 10000(万机高并发)

面试: nginx是一款性能强大的Web服务器,使用IO多路复用中的epoll模型,解决高并发的代理器及负载均衡设备,成为当前企业主流的Web服务器。

一、Nginx的web 优势(动静分离)

动:能与用户进行交互,用户查询数据时与后方数据库进行调用

静:.html/.jpg/.avi/.css/.txt ......所见即所得

  • IO多路复用: < IO => input(输入)/output(输出)
  • 时分多路复用 ==> CPU时钟/中断设计 (一手画圆,一手画方)
  • 频分多路复用 高并发——IO多路复用——epoll——异步——非阻塞

-----------epoll IO多路复用---------------

传统方法最传统的多进程并发模型,每进来一个新的I/O流会分配一个新的进程管理
Apache < 传统的apache在处理用户的请求时,会分出n的子进程(复制),每个进程处理一个用户的请求
         当其中有一个子进程发生故障,会导致其他的子进程错误!

Nginx  < 当用户的请求到达nginx服务器时,服务器会有时延(时间延时)
         用户1访问请求到达时,nginx会处理第一个用户的请求
         这时nginx不会暂停服务,而是会在去接收用户2的请求,丢给后方服务处理后
         再去对用户3的请求进行接收.......
         当用户1的请求完成后,返还数据给用户1,再去接收用户4的请求.......

IO:单个线程通过记录跟踪每个I/O流(sock)的状态,来同时管理多个I/O流

作用:是尽量多的提高服务的吞吐能力,在同一个线程里面,通过拨开关的方式,来同时传输多个I/O流

epoll(IO多路复用中的一种模型):线程安全,不仅告诉你sock组里面的数据,还会告诉你具体哪个sock有数据,你不用自己去找

  • 异步: 用户过来的请求不是同时在处理,而是多路复用处理多个请求

  • 非阻塞: nginx处理用户的请求时,不会因为后方Web服务器的问题而暂停服务,而是会处理其他用户的请求

  • 同步: 两边同时处理请求

  • 阻塞: 用户的请求到达时,只处理该用户的请求,只有处理完用户请求后,才去处理其他请求。


二、Installed(Yum 配置)

  1. 1. 在百度上搜索 "www.nginx.org" 
    2. 打开页面中找到 "documentation"单击打开
    3. 单击"installing" ,找到 "package"打开
    4. 找到 REHEL/CentOs,打开,按照步骤安装
    ​
    ------------版本--------------
    ​
    1. Mainline version: 主线版,即开发版
    2. Stable version: 最新稳定版,生产环境上建议使用的版本  #选择这版本即可
    3. Legacy versions: 遗留的老版本的稳定版

---------------安装nginx显示秘钥问题----------------------

wget https://nginx.org/keys/nginx_signing.key --no-check-certificate rpm --import nginx_signing.key

Nginx 配置文件 环境: rpm -ql nginx //列出nginx支持的所有模块/文件

  1. 1. /etc/logrotate.d/nginx      #日志轮转
    2. /etc/nginx/nginx.conf       #总配置文件
    3. /etc/nginx/conf.d/          #子配置文件
    4. /etc/nginx/conf.d/default.conf #默认的网站配置目录
    5. /etc/nginx/mime.types    #文件关联程序(网站类型和相关处理的程序)
    6. /etc/nginx/modules       #模块文件夹/第三方模块
    7. /usr/lib/systemd/system/nginx.service systemctl      #服务脚本
    8. /usr/sbin/nginx    #主程序
    9. /var/cache/nginx   #缓存

Nginx编译的参数

--with-file-aio    #支持异步非阻塞
--with-threads     #多线程模块
--with-http_addition_module #响应式追加模块/替换模块
--with-http_auth_request_module #认证模块
--with-http_gunzip_module  #压缩模块
--with-http_realip_module  #代理功能,Nginx获取真实IP模块
--with-stream   #负载均衡/反向代理

Nginx的主配置:vim /etc/nginx/nginx.conf

-------------核心模块-------------
    < worker_processes 1;      #启动的worker进程数量(通常与本机的CPU数量一致或auto)
​
-------------事件驱动模块-------------
    < use epoll;     #事件驱动模型epoll【默认】
    < worker_connections 10240;  #每个worker进程允许处理的最大连接数,例如10240,65535
​
-------------Http模块--------------
模块的参数优化.......

Nginx的子配置:vim /etc/nginx/conf.d/default.conf

  1. 1. listen 80 => 监听端口(可以作修改)
    ​
    2. charset koi8-r; => 默认字符集(UTF8)
    ​
    3. location /{
        root    /usr/share/nginx/html; => 网页内容存放目录
        index   index.html index.htm;  => 网页的主页
            }

三、做一个属于自己的小网站

  1. 1. vim /etc/nginx/conf.d/pt.conf
       server {
            listen 80;
            server_name     pengge.com;
            location / {
                    root    /peng;
                    index   index.html;
            }
       }
    ​
    2. 创建存放文件的目录:mkdir /peng
    ​
    3. echo "penggeDaShuaiGe"  >> /peng/index.html
    ​
    4. 域名解析: vim /etc/hosts
    192.168.178.131(本机的IP地址)    pengge.com
    ​
    5. 访问pengtong.com:yum -y install elinks   #纯字符浏览器
                        elinks  http://192.168.178.131

你可能感兴趣的:(Nginx,云计算,nginx,linux)