Nginx-基本配置(一)

优点

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

基本命令

  • 启动
    • 使用默认配置文件(默认配置文件路径 /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-基本配置(一))