目录结构
主要几个:
- 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; #监听端口8080server_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即接收用户请求后找寻对应网页的目录。