1. nginx基础

1. nginx进程模型:

master进程:主进程,管理worker,接收来自外界的信号分发给worker
worker进程:工作进程,处理客户端的请求,每个worker进程默认连接数为1024;默认只起一个工作进程;可在配置文件中修改

2. nginx.conf配置结构:
{
  main: 全局配置
  event: 配置工作模式及连接数
  http : http模块相关配置{
    server: 虚拟主机配置 {
      location: 路由配置
      upstream: 集群配置
    }
  }
}
2.1 全局配置:
#user  nobody;

表示以操作系统哪一个用户去启动worker进程;如图可以看到nginx启动了一个master,一个worker进程,worker进程是nobody用户启动
image.png
worker_processes  1;

用于配置worker进程个数

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

配置错误日志的位置和日志级别

nginx日志级别:debug info notice warn error crit
image.png
2.2 event块
events {
    worker_connections  1024;
}

配置了一个worker的最大连接数

2.3 http块
include mime.types;

用于引入文件
image.png
    #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  logs/access.log  main;

记录请求的日志,指定日志的格式

    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;

sendfile: nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
tcp_nopush: 设置tcp的psh标志位?
keepalive: 长连接超时时间,单位是秒

2.4 server块:

server块用于配置虚拟主机,从用户角度来看,一台虚拟主机和一台独立的硬件主机是完全一样的。虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,对多个网站提供服务。

        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

listen用于监听指定ip:port的连接
listen 127.0.0.1:8000; #只监听来自127.0.0.1这个IP,请求8000端口的请求
listen 127.0.0.1; #只监听来自127.0.0.1这个IP,请求80端口的请求(不指定端口,默认80)
listen 8000; #监听来自所有IP,请求8000端口的请求
server_name用于指定虚拟主机名称,可以配多个 空格区分

2.5 location块:

语法结构:

location [ = | ~ | ~* | ^~ ] uri { ... }

uri用于与请求url(除开虚拟主机名)进行匹配的字符串

  1. 在不添加此选项时,Nginx服务器首先在server块的多个location块中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录匹配度最高的一个。然后,服务器再用location块中的正则uri和请求字符串匹配,当第一个正则uri匹配成功,结束搜索,并使用这个location块处理此请求;如果正则匹配全部失败,就使用刚才记录的匹配度最高的location块处理此请求。
  2. “=”,用于标准uri前,要求请求字符串与uri严格匹配。如果已经匹配成功,就停止继续向下搜索并立即处理此请求。
  3. “^~”,用于标准uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
  4. “~”,用于表示uri包含正则表达式,并且区分大小写。
  5. “~* ”,用于表示uri包含正则表达式,并且不区分大小写。注意如果uri包含正则表达式,就必须要使用“~”或者“~*”标识。

root:用于设置请求寻找资源的跟目录

3. nginx常用命令:

nginx -s stop: 直接暴力关闭nginx
nginx -s quit: 不在接收新的连接,正在使用中的连接断开后,关闭nginx,仅针对http
nginx -t: 检查配置文件语法
nginx -V: 查看版本和其他信息
nginx -s reload: 重新加载配置文件

参考:
https://www.cnblogs.com/54chensongxia/p/12938929.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、nginx.conf文件的结构 nginx.conf一共由三部分组成,分别为全局块、events块和http块...
    代码的搬运工阅读 2,910评论 0 0
  • 一.I/O介绍 httpdMPM perfork:一个master进程开启多个子进程,master只负责读取配置文...
    分享一些文档阅读 3,352评论 0 0
  • Nginx概述 Nginx (engine x) 是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器软件...
    geekdeedy阅读 4,693评论 0 1
  • Nginx是俄罗斯人编写的一款高性能的HTTP和反向代理服务器,在高连接并发的情况下,它能够支持高达50000个并...
    xiaolyuh阅读 4,125评论 0 8
  • Nginx 配置文件 文件结构 Nginx 配置文件由三部分组成: 全局块,主要设置一些影响 Nginx 服务器整...
    逗比的一生阅读 1,031评论 0 1

友情链接更多精彩内容