首页 > 系统相关 >Nginx 入门实战(3)--Nginx 常用配置参数说明

Nginx 入门实战(3)--Nginx 常用配置参数说明

时间:2023-05-07 09:44:39浏览次数:72  
标签:http 入门 -- server Nginx proxy location off size

Nginx 中包含众多的参数,这些参数影响 Nginx 的行为;本文主要介绍一些常用的参数。

1、Nginx 配置文件基本结构

Nginx 的配置文件为 conf/nginx.conf,配置文件由配置指令/参数组成,有些指令/参数位于 main 的位置(如:events、http),有些指令/参数位于其他参数下(如:server 位于 http 下);以下是一个简单的 Nginx 配置文件样例,其中配置了一个端口为 8080 的 http 服务,还配置了一个端口为 9090 的 TCP 服务。

worker_processes  1;

events {
    worker_connections  1024;
}

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

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

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

stream {
    server {
        listen 9090;
        proxy_pass 10.49.196.30:9090;
    }
}

2、常用参数说明

参数 说明 默认值 位置
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
设置访问日志文件及日志格式 access_log logs/access.log combined; http, server, location, if in location, limit_except
access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
access_log off;
设置访问日志文件及日志格式   http, server, location, if in location, limit_except
add_header name value [always]; 添加响应头   http, server, location, if in location
alias path; 设置目录别名,location 必须用 "/" 结束;文件的路径通过将 URI 去除location 部分再添加到 alias 指令的值来构建。   location
allow address | CIDR | unix: | all; 设置允许访问的地址   http, server, location, limit_except
auth_basic string | off; 使用“HTTP基本身份验证”协议对用户名和密码进行验证 auth_basic off; http, server, location, limit_except
auth_basic_user_file file; 设置用户名/密码文件   http, server, location, limit_except
autoindex on | off; 是否列出目录下的文件 autoindex off; http, server, location
autoindex_exact_size on | off; on:显示文件的确切大小,单位为 byte;off:显示文件的大概大小,单位为 K、M、G autoindex_exact_size on; http, server, location
autoindex_localtime on | off; on:显示文件的本地时间;off:显示文件的 UTC 时间 autoindex_localtime off; http, server, location
charset charset | off; 将指定的字符集添加到“Content-Type”响应头中  charset off; http, server, location, if in location
client_body_buffer_size size; 设置客户端请求正文的缓冲区大小 client_body_buffer_size 8k|16k; http, server, location
client_header_buffer_size size; 设置客户端请求头的缓冲区大小 client_header_buffer_size 1k; http, server
client_max_body_size size; 设置客户端请求正文的最大允许大小 client_max_body_size 1m; http, server, location 
default_type mime-type;  定义响应的默认 MIME 类型  efault_type text/plain;  http, server, location
deny address | CIDR | unix: | all;  设置拒绝访问的地址    http, server, location, limit_except
error_log file [level]; 设置日志文件及日志级别 error_log logs/error.log error; main, http, mail, stream, server, location
error_page code ... [=[response]] uri;  设置错误页面 uri   http, server, location, if in location
events { ... } 连接相关配置上下文   main
gzip on | off; 响应是否使用 gzip 压缩  gzip off; http, server, location, if in location
http { ... } Http 配置上下文    main
include file | mask; 通过文件名或文件权限码引入文件   any
index file ...; 设置初始页面文件;可以设置多个文件,Nginx 会按照指定顺序来检查,在找到一个存在的文件后停止检查。 index index.html; http, server, location
ip_hash; 基于客户端 IP 分配请求的负载均衡方法   upstream
keepalive_timeout timeout [header_timeout]; 第一个参数设置保持活动状态的超时时间,第二个参数设置响应头:Keep-Alive: timeout=time keepalive_timeout 75s; http, server, location
large_client_header_buffers number size; 设置大客户端请求头的缓冲区数量和大小 large_client_header_buffers 4 8k;  http, server 
least_conn; 一种负载均衡算法:请求被分配给具有最少活动连接数的服务器   upstream
limit_conn zone number; [ngx_http_limit_conn_module]设置使用的共享内存区域及最大并发连接数;如:limit_conn perserverZone 5;   http, server, location
limit_conn zone number; [ngx_stream_limit_conn_module]设置使用的共享内存区域及最大并发连接数;如:limit_conn perserverZone 5;   stream, server
limit_conn_zone key zone=name:size; [ngx_http_limit_conn_module]设置共享内存区域,包括存储的 key、区域名称及区域大小;如:limit_conn_zone $server_name zone=perserverZone:10m;   http
limit_conn_zone key zone=name:size; [ngx_stream_limit_conn_module]设置共享内存区域,包括存储的 key、区域名称及区域大小;如:limit_conn_zone $server_name zone=perserverZone:10m;   stream
limit_req zone=name [burst=number] [nodelay | delay=number]; 设置使用的共享内存区域、超过请求速率的缓存队列大小、缓存中的请求不延迟处理(nodelay)或延迟处理的个数(delay=number);如:limit_req zone=peripZone burst=5 nodelay;   http, server, location
limit_req_zone key zone=name:size rate=rate [sync]; 设置共享内存区域,包括存储的 key、区域名称、区域大小以及请求速率;如:limit_req_zone $binary_remote_addr zone=peripZone:10m rate=100r/m;   http

listen address[:port] [default_server] [ssl] [http2 | spdy] [proxy_protocol]
[setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size]
[accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport]
[so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

listen port [default_server] [ssl] [http2 | spdy] [proxy_protocol]
[setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size]
[sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off]
[reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

listen unix:path [default_server] [ssl] [http2 | spdy] [proxy_protocol]
[backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter]
[deferred] [bind] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

设置监听地址,可以同时指定地址和端口,也可以仅指定地址或端口。  listen *:80 | *:8000;  server

location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }

配置 URI   server, location
log_format name [escape=default|json|none] string ...; [ngx_http_log_module]定义日志格式,通过 name 指定日志格式的名称 log_format combined "..."; http
log_format name [escape=default|json|none] string ...; [ngx_stream_log_module]定义日志格式,通过 name 指定日志格式的名称   stream
pid file; 设置主进程的进程ID文件 pid logs/nginx.pid; main
proxy_buffer_size size; 设置第一代理服务器响应缓冲区大小 proxy_buffer_size 4k|8k; http, server, location
proxy_buffering on | off; 是否开启代理服务器响应缓冲区 proxy_buffering on; http, server, location
proxy_buffers number size; 设置代理服务器响应缓冲区数量和大小 proxy_buffers 8 4k|8k; http, server, location
proxy_busy_buffers_size size; 设置在响应未完全读取的情况下可以用于向客户端发送响应的所有缓冲区的总大小 proxy_busy_buffers_size 8k|16k; http, server, location
proxy_connect_timeout time; 设置与代理服务器建立连接的超时时间 proxy_connect_timeout 60s; http, server, location
proxy_read_timeout time; 设置从代理服务器读取响应的超时时间 proxy_read_timeout 60s; http, server, location
proxy_send_timeout time; 设置向代理服务器传输请求的超时时间 proxy_send_timeout 60s; http, server, location
proxy_pass URL;  设置代理地址   location, if in location, limit_except
proxy_set_header field value; 重新定义传递给代理服务器的请求头 proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
http, server, location
root path; 设置请求的根目录。仅通过将 URI 添加到 root 指令的值来构建文件的路径。如果必须修改URI,则应使用 alias 指令。 root html; http, server, location, if in location
sendfile on | off; 是否使用 sendfile() 方法 sendfile off; http, server, location, if in location
server { ... }  虚拟服务器配置    http
server_name name ...; 设置虚拟服务器的名称  server_name "";  server
ssl_certificate file;  设置虚拟服务器的 PEM 格式证书文件   http, server
ssl_certificate_key file;  设置虚拟服务器的 PEM 格式密钥文件   http, server
ssl_ciphers ciphers; 设置启用的密码套件 ssl_ciphers HIGH:!aNULL:!MD5; http, server
ssl_client_certificate file; 设置用于验证客户端证书的 CA 证书   http, server
ssl_prefer_server_ciphers on | off; 当使用 SSLv3 和 TLS 协议时,服务器密码套件释放优先于客户端密码套件 ssl_prefer_server_ciphers off; http, server
ssl_session_cache off | none | [builtin[:size]] [shared:name:size]; 设置会话缓存的类型和大小 ssl_session_cache none; http, server
ssl_session_timeout time; 设置 session 超时时间 ssl_session_timeout 5m; http, server
ssl_verify_client on | off | optional | optional_no_ca; 是否启用对客户端证书的验证 ssl_verify_client off; http, server
stream { ... } TCP 配置上下文   main
stub_status;  开启查看基本状态信息    server, location
tcp_nopush on | off; 是否启用 FreeBSD 上的 TCP_NOPUSH 套接字选项或 Linux 上的 TCP_CORK 套接字选项;该选项仅在使用 sendfile 时有效。 tcp_nopush off; http, server, location
try_files file ... uri;
try_files file ... =code;
按指定顺序检查文件,并使用第一个找到的文件处理请求   server, location
worker_connections number; 设置工作进程最大并发连接数 worker_connections 512; events
worker_processes number | auto; 设置工作进程的数量 worker_processes 1; main
use method; 指定要使用的连接处理方法。通常不需要显式指定,nginx 默认会使用最有效的方法。连接方法的详细说明可参考:https://nginx.org/en/docs/events.html。   events
user user [group]; 设置工作进程的用户和组 user nobody nobody; main
       

 

 

参考:https://nginx.org/en/docs/dirindex.html

标签:http,入门,--,server,Nginx,proxy,location,off,size
From: https://www.cnblogs.com/wuyongyin/p/17308974.html

相关文章

  • AutoGPT:有手就会的安装教程
    AutoGPT是什么Auto-GPT是一个实验性开源应用程序,展示了GPT-4语言模型的功能。该程序由GPT-4驱动,将LLM的“思想”链接在一起,以自主实现您设定的任何目标。作为GPT-4完全自主运行的首批示例之一,Auto-GPT突破了AI的可能性界限。AutoGPT是github上最火的GPT项目,......
  • [每天例题]蓝桥杯 C语言 谁拿了最多奖学金
    谁拿了最多奖学金题目   题目要求1.只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。2.每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写......
  • 再谈降本增效:降本有可能,增效不确定
    降本手段一招鲜,增效方法吃遍天。互联网行业里,降本策略千奇百怪,手段却出奇一致;增效方法五花八门,手段更是花里胡哨。 对于企业来说,商业的基本形式,就是围绕供需产生的利益关系。 很多决策的执行,都是基于利益最大化考虑的。 什么是利益最大化? 更低的成本、更高的效率......
  • 您在飞行程序设计时使用哪种软件?
    最近填了一份调查问卷,里面提到飞行程序设计时所使用的软件,除了CAD之外,我很想说我用自己写的插件。我用自己写的插件,并不是因为这个插件有多么完美,而是因为,通过插件的开发,可以实现个人经验的积累,在可控的精准度下,提高工作效率,并尝试更多的可能性。苏世民《我的经验与教训......
  • 【VBA】如何在Word表格里插入特殊符号
    Word里有插入特殊符号的功能,如下图。通过编程语言实现在Word表格插入特殊符号操作,可以参考下面VBA代码。ActiveDocument.Tables(1).Range.Cells(2).SelectSelection.MoveEndUnit:=wdCharacter,Count:=-1Selection.InsertSymbolFont:="Wingdings",_CharacterNumber:=-38......
  • Vite-WeGPT聊天AI实例|vue3+pinia仿ChatGPT聊天界面
    基于vue3.x+vite4+pinia2仿chatgpt聊天模拟实例Vue3-WeGPT。基于Vite4.x+Vue3+Pinia2+VEPlus+Vue3-Markdown等技术实现仿ChatGPT聊天AI界面实例。整体界面简洁清新、支持2种界面布局、暗黑+亮色模式、全屏+半屏展示、Markdown语法解析、侧边栏收缩等功能。使用技术编辑器:cur......
  • 信号量
    有几个线程就有几个除互斥信号之外的信号量,每个线程等待自己的信号量有位置,并最后给其他信号量位置。初始时,生产者的值非0,消费者的值为0。/*#include<semaphore.h>intsem_init(sem_t*sem,intpshared,unsignedintvalue);参数:......
  • 再谈降本增效:降本有可能,增效不确定
    降本手段一招鲜,增效方法吃遍天。互联网行业里,降本策略千奇百怪,手段却出奇一致;增效方法五花八门,手段更是花里胡哨。 对于企业来说,商业的基本形式,就是围绕供需产生的利益关系。 很多决策的执行,都是基于利益最大化考虑的。 什么是利益最大化? 更低的成本、更高的效率......
  • JavaScript 笔记
    JavaScript简介JavsScript于1995年由BrendanEich用时10天写出,用于网景浏览器。最初的名字叫LiveScript,也被部分员工称为Mocha。那时Java语言很流行,出于商业化的考量,更名为JavaScript,但两者之间没有关联。最早的JS作为脚本语言给浏览器增加一些诸如鼠标跟随等交......
  • UNeXt:基于 MLP 的快速医学图像分割网络
    UNeXt是约翰霍普金斯大学在2022年发布的论文。它在早期阶段使用卷积,在潜在空间阶段使用MLP。通过一个标记化的MLP块来标记和投影卷积特征,并使用MLP对表示进行建模。对输入通道进行移位,可以专注于学习局部依赖性。UNeXt完整文章:https://avoid.overfit.cn/post/addeb0eacf6......