localtion 配置 语法结构: location [ = ~ ~* ^~ ] uri{ ... } uri 变量是带匹配的请求字符, 可以是不含正则表达的字符串, 也可以是包含正则的字符串 其中[ ] 中的是可选项 uri 的是必选项: 用来改变请求字符串与uri的匹配方式 = 用于标准uri 前面 , 要求请求字符串与uri严格匹配,如果已经匹配成功,就停止匹配立即处理这个请求 ~ 表示uri包含正则表达式 并且区分大小写 ~* 用于表示uri包含正则表达式 不区分大小写 ^~ 要求找到表示uri和请求字符串匹配度最高的location, 然后处理这个要求 网站错误页面 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收、理解、接受 3xx:重定向--要完成请求必须进行更进一步的操作 4xx:客户端错误--请求有语法错误或请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求 http消息 代码 含义 以移动 301 请求的数据具有新的位置,而且更改是永久的 重定向 302 请求数据临时位置更改 无法找到网页 400 可以连接到服务器,但是由于地址问题,无法找到网页 网站拒绝显示 404 可以连接到网站但是找不到网页 无法显示该页面 405 可以连接网站,页面内容无法下载,网页编写方式问题 网站无法显示该页面 500 服务器问题 未执行 501 没有讲正在访问的网站设置显示为浏览器所请求的网站 不支持版本 505 请求的协议版本信息 常见: 200 OK //客户端请求成功 400 Bad Request //客户端请求有语法错误,不能被服务器所理解 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 403 Forbidden //服务器收到请求,但是拒绝提供服务 404 Not Found //请求资源不存在,eg:输入了错误的URL 500 Internal Server Error //服务器发生不可预期的错误 503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常 eg:HTTP/1.1 200 OK (CRLF) 常见的配置文件说明 1, error_log file | stderr [debug | info | notice | warn | error | crit | alert | emerg ] debug --- 调试级别 输出日志信息最全 info --- 普通级别 输出提示信息 notice --- 注意级别 输出注意信息 warn --- 警告级别 输出一些无关紧要的错误信息 error --- 错误级别 有影响服务正常运行的错误 crit --- 严重错误级别 严重错误级别 alert --- 十分严重级别 十分严重 emerg --- 超级严重 超级严重 nginx服务器的日志文件输出到某一文件或者输出到标准输出错误输出到stder: 后面则是跟的日志级别可选项, 由低到高分为debug .... emerg 设置级别后联通高级别也会别记录 2, user user group 配置启动程序的用户 用户 组 希望所有能启动则不写 3, worker_processes number | auto number 指定nginx进程做多产生woker peocess数 auto nginx 自动检测进程数 4, pid file 指定pid文件凡在哪里 pid log/nginx.pid 注意设置的时候要配置文件名,不然找不到 5, include file 包含的配置文件,引入其他的配置 6, acept_mutex on | off 设置网络的连接序列化 7, multi_accept on| off 设置是否允许同时接受多个网络连接 8, use method 事件驱动模型的选择 9, worker_connections number 配置允许每一个workr process 最大连接数, 默认是1024 10, mime-type 配置资源类型,mime-type是网络资源的一种媒体类型 格式: default_type mime-type 11, access_log path[format[buffer=size]] 自定义服务器的日志 path: 配置服务器日志文件的存放的路径和名称 format: 可选项,自定义服务器日志的格式字符串 size: 配置临时存放日志的内存缓冲区大小 12, log_format name sting ...; 与access_log联合使用 ,专门用于定义服务器日志的格式 并且可以为格式定义一个名字, 让access_log 方便调用
name : 格式字符串的名字 默认combined string 服务日志的格式字符串
log_format main 'remote_addr - remote_user [time_local] "status body_bytes_sent "http_referer" ' '"
$remote_addr 10.0.0.1 ---访问者源地址信息
$remote_user - -- nginx服务器惊醒认证访问时,显示的认证信息
[$time_local] --- 显示访问时间搓信息
"$request" "GET / HTTP/1.1" --- 请求的行
$status 200 --- 显示状态吗信息 显示304的话是因为读取缓存
$body_bytes_sent 256 --- 响应数据的大小信息
"http_refer" --- 链接目的地 "$http_user_agent" --- 客户端访问的浏览器信息
"$http_X_forwarded_for" 简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到
13, sendfile no | off 配置允许sendfile方式传输文件 14, sendfile_max_chunk size 配置nginx进程的每个worker_process每次调用senfile()传输数据量最大不能超过的值 15, keepalive_timeout timeout[header_timeout]; 配置连接超时时间 timeout 服务端对连接的保持时间 header_timeout, 应答报文头部的keeplive域设置超时时间 16, keepalive_repuests number 单链接请求数上限 17, 配置网络监听 配置监听有三种方法: 监听IP地址: listen address[:port] [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [deferred] 监听配置端口: listen port [default_server] [setfib=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_file=filter] 监听socket listen unix:path [default_server] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_file=filter] [deferred] address : IP地址 port: 端口号 path: socket文件路径 default_server: 标识符,将此虚拟主机设置为address:port默认主机 setfib=number: 目前支队freeBSD有用 以前是0.8.44版本监听scoket关联路由表 backlog=number: 设置监听函数listen()最多永续多少网络连接挂起 freeBSD默认为-1 其他511 rcvbuf=size: 监听socket接受缓存区大小 sndbuf=size: 监听socket发送缓存区大小 deferred :标识符 将accept()设置为Deferred accept_file=filter: 设置监听端口对请求的过滤, 自对freeBSD和netBSd 5.0+的游泳 bind: 标识符 使用独立的bind()处理address:port ssl: 标识符,设置绘画连接使用ssl模式进行 18, server_name name 基于名称的虚拟主机配置 对于多个匹配成功的处理优先级: 准确匹配server_name 通配符在开始时匹配server_name成功 通配符在结尾是匹配server_那么成功 正则表达式匹配server_name成功 在上诉匹配模式中被多次匹配会首先处理首次匹配成的清求 19, root path 配置请求的根目录 web服务器接收到请求后,需要在服务器指定的目录寻找请求资源, 这个路径就是指定文件目录 20, alias path (location模块中使用) 更改location接收到的URI的请求路径 可以跟着变量信息 21, index file ...; 设置网站的默认首页 22, error_page code ...[=[response]] uri 设置错误页面信息 code 要处理的http错误代码 resoonse 可选项 讲code指定的错误代码转化为新的错误代码 uri 错误页面的路径或者网站地址 23, allow address | CIDR |all 配置基于ip的访问允许权限 address 允许访问客户端的ip 不支持设置多个 CIDR 允许访问的客户端的CIDR 如185.199.110.153/24 all 表示所有客户端可以访问 24, deny address | CIDR |all 配置基于ip的访问禁止权限 address 允许访问客户端的ip 不支持设置多个 CIDR 允许访问的客户端的CIDR 如185.199.110.153/24 all 表示所有客户端可以访问 25, auth_basic string |off 配置基于密码的nginx访问权限 string 开启认证功能,并配置验证式的指示信息 off 关闭 26, auth_basic_user_file file 配置基于密码访问nginx访问的权限文件 file文件需要使用绝对路径