Nginx运行原理

目录结构

主要几个:

  • conf(放置Nginx的核心配置文件,主配置文件nginx.conf)
  • html(默认情况下的网页和静态资源),其中50x展示的是错误页面,index是访问成功展示的默认页面(可修改)
  • logs(用来记录访问日志),access.log记录访问时间及访问地址,errror.log记录访问出错

基本运行原理

nginx响应请求时过程为:首先nginx主目录下的sbin文件中的nginx的可执行文件开始运行,之后会开启Master的主进程,主进程里会把配置文件读取并检验(检查配置文件是否有错误),如果没有错误会开启子进程worker,子进程开启后才是真正运行在服务器的多个进程之一,子进程和主进程都启动后会等待用户的请求接入进来,用户请求接入是由worker来响应并解析,此时在了解用户的请求后worker会读取conf目录下的nginx.conf里面记录着用户请求的对象的站点在哪,worker就会根据指引去对应的位置寻找,找到后就会开始加载。

在以上过程中会有多个子进程同时完成用户请求,而master进程则负责协调子进程。在完成请求后worker就会被删掉,新的worker去读取新的文件。

Nginx基础配置

配置文件:


worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;

    keepalive_timeout  65;


    server {
        listen       8080; #监听端口8080
        server_name  localhost; #本地服务器

        # location 是匹配路径 以 "/" 开头 (非严格匹配)
        location / {
            root   html;
            index  indexdemo.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


        # # location 是匹配路径 以 "/" 开头 (非严格匹配)
        # location / {
        #     root   html/web;
        #     index  index.html;
        # }

        # location 是匹配路径 以 "/api/" 开头 (非严格匹配)
        location /api/ {
                  # rewrite 重写路径  (正则匹配)
          rewrite ^/api/(.*)$ /$1 break;
        # proxy_pass 反向代理路径 注意尾部的$1 是为了处理不在根目录下html
        #请求
          proxy_pass http://47.97.155.31:8082/$1;
        }

    }

}
  • worker_processes :worker_processes 1; 默认为1,表示开启一个业务进程
  • events:事件驱动模块
  • worker_connections :worker_connections 1024; 单个业务进程可接受连接数
  • include mime.types: 引入http mime类型到主配置文件中,mime.types表明返回文件是什么类型的(由服务器端定义),具体类型可以打开mime.type查看(并不包含所有类型,可以自行添加)
  • default_type application/octet-stream; 如果mime类型没匹配上,默认使用二进制流的方式传输。
  • sendfile on;  使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝(0拷贝就是免除了中间拷贝过程比如拷贝到U盘)。
  • keepalive_timeout 65;保持连接,超时时间。1
  • server,一个server表示一个主机。listen就是这台主机的监听端口(主机的监听端口不可以重复),sever_name表示当前主机的主机名(可以在此配置域名或主机名),location为匹配路径,root即接收用户请求后找寻对应网页的目录。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值