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
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 10,196评论 5 124
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
    吃瓜的东阅读 4,480评论 0 41
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 80,923评论 21 356
  • 1.简介:  Nginx:engine X ,2002年,开源,商业版 http协议:web服务器(类似于ht...
    尛尛大尹阅读 1,860评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139