在Nginx 的conf 文件加下面 存在nginx.conf 配置文件
1.详解nginx.conf 文件
nginx.conf 可以分为三个部分 一个是全局块、event 块、一个是http 块 ,http 块包含了多个server 块,一个server 块又包含了多个 location 块
##全局块
worker_process 1;
pid logs/nginx.pid;#Nginx 进程 pid 位置
use method ; # 配置事件驱动模型 method(select、poll、kqueue、epoll、rtsig、dev/poll、eventport)
accept_mutex on |off; #设置网络连接的序列化
multi_accept on | off ;#是否允许同时接受多个网络连接
# include [filepath] 引入文件
error_log file [debug|info|notice |warn |error|crit|alert|emerg];#错误日志存放路径
events # events 块
{
worker_connections 1024;# 支持最大连接数
}
http
# http全局模块
include mime.types ; #配置MIME-Type
sendfile on | off; #是否sendfile传输
keepalive_time 65 ; #连接超时时间
{ #http模块
server # server 全局模块
listen 80; #监听端口
server_name localhost; #本虚拟主机名 可以为域名
{ # server 配置
location /
{
#location 块
proxy_pass http://127.0.0.1:8080;# 代理的请求地址 只要请求你一下 就会跳转到 这个
}
}
server # server 全局模块
{ # server 配置
location [PATTERN]
{
#location 块
}
}
}
- 全局块
全局块是默认的配置文件从开始到 events块之间的一部分内容,主要是设置影响Nginx 服务器整体运行的配置指令。包括Nginx 服务器的用户组、允许生成的 worker process 数、Nginx 进程PID 存放的路径、日志存放的路径和类型以及配置文件引入 - events 块
events 块涉及的指令主要影响Nginx 服务器和用户的连接。常用到的设置是否开启worker process 下网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型处理连接请求,每个worker process 可以同时支持最大连接数 - http块
http 块是Nginx 服务器配置重要的一部分,代理、缓存和日志定义等大多数功能配置和第三方模块的配置都存放在这个模块中。
http 有自己的全局块,即http { … ( http 全局块 ) server{} 在 http 全局块一般配置的的包括文件引入、MIME-Type 定义、日志自定义、是否使用sendfile 传输文件、连接超时时间、单连接请求数上限。 - server 块
server 块和“虚拟主机”有着密切的联系
虚拟主机 :是主机空间或者网页空间,本身是一种技术。该技术是为了节省互联网服务器硬件成本而出现的。这里的“主机”或空间都是由实体的服务器延伸,硬件系统可以基于服务器群,或者单个服务器等。虚拟主机技术主要应用于http、FTP 以及EMAIL 。将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。在使用Nginx服务器提供Web服务时,利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器。
也就是说每个server块相当于一台虚拟主机,但是内部可以有多台主机联合提供服务,一起对外提供逻辑上关系密切的一组服务。每一个单独的server 块的内容不会影响其他server块的内容,不过http 块部分指令可以在server 块中 甚至在location 块里面。 每个server 块中 存在多个location以及server 全局块 。
server 全局块主要配置 本虚拟机的监听配置 和主机名称(域名或者ip)
- location 块
从严格意义来说location 块就是server 的指令,只是在整个Nginx起着重要作用,并且Nginx灵活性都是依靠location 体现出来,location主要作用是基于Nginx 服务器接收到的请求字符串进行匹配,对于特定的请求做处理,地址定向,数据缓存,答案控制,等功能都是在这部分实现的。许多第三方模块配置也是在location 提供实现。
proxy_pass 就是作为代理接口配置
Nginx 配置块讲完了,请各位大佬多多指教