美文网首页
Nginx-基本配置(一)

Nginx-基本配置(一)

作者: 东风依旧788 | 来源:发表于2018-05-17 14:23 被阅读0次

    优点

    • 更快
    • 高扩展性
    • 高可靠性
    • 低内存
    • 万级并发量
    • 热部署

    基本命令

    • 启动
      • 使用默认配置文件(默认配置文件路径 /usr/local/etc/nginx/nginx.conf)
        /usr/local/bin/nginx
      
      • 使用自定义配置文件
       /usr/local/bin/nginx -c ~/my-nginx.conf
      
    • 停止
      • 可以使用系统kill命令停止
      • 立即终止(相当于kill命令结果)
         /usr/local/bin/nginx -s stop
        
      • 平缓的停止服务(关闭监听端口,停止接受新的请求;正常的处理完所有已经接受到的请求,再停止服务)
         /usr/local/bin/nginx -s quit
        
    • 重读配置并生效(先检查配置文件,如果没有错误,将会平缓的停止再次启动)
      /usr/local/bin/nginx -s reload
      
    • 日志文件回滚(将当前文件转移到其他目录进行备份,重新打开日志文件)
       /usr/local/bin/nginx -s reopen
      

    运行Nginx进程

    master 单进程模式:系统中只有一个进程,该进程既是master角色又是worker角色
    master-worker协作模式
    • master进程管理多个worker进程,worker进程是繁忙的,真正的进行互联网的服务,mater只负责管理worker进程
    • 一般情况下,worker进程的数量和cpu的合数相等
    • worker进程通过共享内存,原子操作等进程通信机制来实现负载均衡
    • worker可以同时处理的请求数受限于内存大小,不同的worker进程之间处理并发请求几乎是没有同步锁限制,他们不会进入睡眠状态


      2.jpg

    配置的通用语法

    • 配置项注释 : #
    • 配置单位
      • 空间相关单位 K/k(表示KB) M/m(表示MB)
      • 时间相关单位 ms(毫秒) s(秒) m(分钟) h(小时) d(天) w(周) M(月,包含30天) y(年,包含365天)

    配置文件分析

    文件主要结构
    main
    events {
    }
    http {
        server {
            location {
              }
        }
     }
    
    • main 只要控制Nginx子进程所属用户和用户组、派生子进程数、错误日志和级别,pid位置,子进程的优先级,进程对应的CPU,进程可以打开文件描述符数目等
    • events 控制Nginx连接方式
    • http 处理http请求的主要配置块
    • server 主机配置块,可以用于配置多个虚拟主机
    • location server中对应目录级别的控制块
    main 相关配置
    • worker进程数
      worker_process num
      
    • 设置用户和组
      • master进程以root权限运行,worker进程默认情况下以nobody用户运行(原因在于nobody用户是一个不能登录的账号,worker进程用户权限越低,服务器安全系数越高)
      • 配置方式
         user nuser ngroup
        
    events相关配置
    • 每个worker的处理并发最大连接数
      worker_connections num
      
    http相关配置
    • include 用于引入配置文件
    • default_type 设置默认的文件类型
    • sendfile 默认值是on,表示开启高效的文件传输模式
    server相关配置
    • listen 监听端口,默认值是80
    • error_page 自定义错误页面
      • 基于错误码转到本地页面
      error_page 404 /404.html;
      error_page 500 502 /50.html;
      
      • 基于错误码转到在线资源
      error_page 403 http://test.com/forbidden.html;
      
      • 错误码进行转换
       error_page 401=200 /404.html
      
    • server_name
      • 配置方式
          server_name name[ name...]
        
      • 说明
        • server_name后面可以配置多个名称
        • 处理HTTP请求时,nginx将取出header中host信息,与每一个name进行匹配,其中优先级如下
          1. 名称完全匹配 如 www.test.com
          2. 选择通配符在前面的 如*.test.com
          3. 选择通配符在后面的 如 www.test.*
          4. 最后选择正则表达式匹配的
          5. 当全部无法匹配时,将会使用默认server
    location相关配置
    • root 这是主机站点的根目录位置
    • index 指定默认的索引文件
    • 配置匹配地址
      • location[=||*|^~|@]/uri/{...}
      • location根据用户请求中的uri来进行配置匹配,如果匹配采用location块中配置处理请求
      • 匹配规则
        • =表示把uri作为字符串,以便与参数进行完全匹配
        • ~表示匹配URI是字母是大小写敏感的(可以使用正则表达式)
        • ~*表示匹配URI时忽略字母大小写(可以使用正则表达式)
        • ^~表示匹配URI时只需要期前半部分与uri匹配即可
        • @表示仅仅用于nginx服务内部请求之间的重定向
        • 当匹配多个值时,以一个匹配优先
    • root/alias 指定本地文件
      • 两者区别:root是在uri前面直接加路径(root/uri);alias是匹配部分的替换
        location /img/ {
             alias /var/www/image/;
         }
       location /img2/ {
             root /var/www/image/
        }
      
      当请求/img/1.png => /var/www/image/1.png
      当请求/img2/1.png => /var/www/image/img2/1.png
    权限控制
    • 默认提供了allow和deny两种控制模式
    • 权限指令后面加可以使用ip,ip段和all
    • 注意事项
      • 单个IP范围最小,all范围最大
      • 在同一个块中,同一个IP或IP段存在多个权限指令时,先出现的优先级最高
      • 当多个块 中,都出现权限控制指令,内层的权限高于外层权限
    • 可以使用的块
      • http
      • server
    • 禁止所有
      deny all
      
    • 只允许指定用户访问
      allow 192.168.1.1
      deny all
      

    相关文章

      网友评论

          本文标题:Nginx-基本配置(一)

          本文链接:https://www.haomeiwen.com/subject/kqrydftx.html