Nginx——nginx可配置参数

Nginx的配置

配置文件结构

...              #全局块

events {         #events块
   ...
}

http      #http块
{
    ...   #http全局块
    server        #server块
    { 
        ...       #server全局块
        location [PATTERN]   #location块
        {
            ...
        }
        location [PATTERN] 
        {
            ...
        }
    }
    server
    {
      ...
    }
    ...     #http全局块
}

全局块

影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等

events块

配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等

http块

主要作用是配置http服务器,利用此配置实现反向代理功能和负载均衡支持。此参数可以嵌套多个server。文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等

server全局块

配置虚拟主机的相关参数,一个http中可以有多个server

location块

配置请求的路由,以及各种页面的处理情况

配置参数

Nginx配置格式为key value;。键和值之间有空格,最后以;结尾

全局块参数

作用示值例
user配置用户或者组nobody nobody
worker_processes允许生成的进程数2
pid指定nginx进程运行文件存放地址/nginx/pid/nginx.pid
error_log制定日志路径 级别。这个设置可以放入全局块,http块,server块log/error.log debug
worker_rlimit_nofile一个nginx进程打开的最多文件描述符数目65535

events块参数

作用示值例
use事件驱动模型epoll (可选参数:select、poll、kqueue、epoll、resig、eventport)
worker_connections最大连接数1024
accept_mutex设置网路连接序列化on
multi_accept设置一个进程是否同时接受多个网络连接off

http块参数

http服务器配置

作用示值例
include设定mime类型mime.types
default_type默认文件类型text/plain
server_names_hash_bucket_size服务器名字的hash表大小128
client_header_buffer_size客户端请求头部的缓冲区大小4k
large_client_header_buffers客户请求头缓冲大小。nginx默认会用client_header_buffer_size;header过大,它会使用large_client_header_buffers来读取8 128k
client_max_body_size请求缓存8m
keepalive_timeout连接超时时间,默认为75s,可以在http,server,location块75
autoindex显示目录on
autoindex_exact_size默认为on,显示出文件的确切大小,单位是bytes 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB显示文件大小
autoindex_localtime显示文件时间 默认为off,显示的文件时间为GMT时间 改为on后,显示的文件时间为文件的服务器时间on
sendfile允许sendfile方式传输文件,默认为off,可以在http块,server块,location块on
tcp_nopush防止网络阻塞on
tcp_nodelay防止网络阻塞on
fastcgi_send_timeout是指nginx进程向fastcgi进程发送request的整个过程的超时时间300
fastcgi_read_timeout是指fastcgi进程向nginx进程发送response的整个过程的超时时间300
fastcgi_connect_timeout链接超时时间300
fastcgi_buffer_size缓存大小64k
fastcgi_buffers缓存4 64k
fastcgi_busy_buffers_size128k
fastcgi_temp_file_write_size128k
access_log取消服务日志off
log_format日志格式设置myFormat ‘ s t a t u s [ status [ status[time_local] $remote_addr h o s t host hostrequest_uri $sent_http_location’;
sendfile_max_chunk每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限100k
error_page错误页404 https://www.baidu.com;
gzip开启gzip压缩输出on
gzip_min_length允许压缩的页面的最小字节数,页面字节数从header偷得content-length中获取.默认是0,不管页面多大都进行压缩.建议设置成大于1k的字节数,小于1k可能会越压越大1k
gzip_buffers申请n个单位为mk的内存作为压缩结果流缓存4 16k
gzip_http_version压缩版本1.1
gzip_comp_level压缩等级.1压缩比最小,处理速度快.9压缩比最大,比较消耗cpu资源2
gzip_types压缩类型text/plain application/x-javascript text/css application/xml;
gzip_vary选项可以让前端的缓存服务器缓存经过gzip压缩的页面on
upstream负载均衡内容,下面单独说明

日志格式参数

参数含义
r e m o t e a d d r 与 remote_addr与 remoteaddrhttp_x_forwarded_for客户端的ip地址
$remote_user客户端用户名称
$time_local访问时间与时区
$request记录请求的url与http协议
$status请求状态;成功是200
$body_bytes_sent发送给客户端文件主体内容大小
$http_referer记录从那个页面链接访问过来的
$http_user_agent记录客户浏览器的相关信息

server全局块参数

虚拟主机配置

作用示值例
listen监听端口4545
listen监听端口 https443 ssl
server_name监听地址127.0.0.1
rewriteHTTP 自动跳转 HTTPShttps://www.baidu.com;
root根目录path
ssl_certificateC:\WebServer\Certs\certificate.crt;
ssl_certificate_keyC:\WebServer\Certs\private.key;
ssl_session_cacheshared:SSL:1m;
ssl_session_timeout5m;
ssl_protocolsSSLv2 SSLv3 TLSv1;
ssl_ciphersALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_cipherson;
index设置默认页index.html
keepalive_requests单连接请求上限次数

location块参数

location参数格式为

    location  请求的url过滤 {       
       ......         
    } 

在location和代码块之间需要提供进行url过滤的匹配规则

作用示值例
root根目录path
deny拒绝的ip127.0.0.1
allow允许的ip127.0.0.1
proxy_pass服务器列表127.0.0.1:8080 (在配置了负载均衡的时候upstream,此位置指向负载均衡的名字)
proxy_temp_file_write_size高负荷下缓冲大小64k
proxy_connect_timeoutnginx跟后端服务器连接超时时间10080s
proxy_send_timeout后端服务器数据回传时间10080
proxy_read_timeout连接成功后,后端服务器响应时间10080
proxy_buffer_size设置代理服务器64k
proxy_buffersproxy_buffers缓冲区16 32k
proxy_busy_buffers_size高负荷下缓冲大小64k
proxy_request_bufferingoff
proxy_bufferingoff
proxy_redirectoff
proxy_set_headerHost $host
proxy_http_version1.1
client_max_body_size允许客户端请求的最大单文件字节数1024m
client_body_buffer_size缓冲区代理缓冲用户端请求的最大字节数128k
负载均衡配置

负载均衡需要在http代码块中配置 upstream然后在serverlocation代码块中的proxy_pass中使用;下面是一个使用示例

## 指定了负载均衡
http:{
......
    upstream myserver {   
      server 127.0.0.1:7878;
      server 127.0.0.1:7879 backup;  #热备
    }
    
    server {
        ......
        location test/ {
            proxy_pass myserver;
            ......
        }
    }
    
......
}

负载均衡可选模式

模式说明模式参数
热备当一台服务器发生事故时,才启用第二台服务器给提供服务127.0.0.1:8080 backup
轮询将请求顺序的分配给各服务器无需参数
加权轮询跟据配置的权重的大小而分发给不同服务器不同数量的请求127.0.0.1:8080 weight=1
hashnginx会让相同的客户端ip请求相同的服务器upstream 代码块中单独一行添加ip_hash;

负载均衡其他参数

处理均衡模式还可以配置其他参数

模式参数说明
down表示当前的server暂时不参与负载均衡
backup预留的备份机器
max_fails允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
weight负载的权重就越大

使用示例

upstream myserver { 
      server 127.0.0.1:8080 weight=2 max_fails=2 fail_timeout=2;
      server 127.0.0.1:80 weight=1 max_fails=2 fail_timeout=1;    
    }

个人水平有限,上面的内容可能存在没有描述清楚或者错误的地方,假如开发同学发现了,请及时告知,我会第一时间修改相关内容。假如我的这篇内容对你有任何帮助的话,麻烦给我点一个赞。你的点赞就是我前进的动力。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大·风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值