Nginx基础03:配置文件nginx.conf(Part2)

MinIO配置避坑指南:Windows服务化、预签名URL与Nginx代理实战 对象存储是现代云原生架构的核心组件,其配置本质是HTTP协议、DNS解析、反向代理与客户端SDK行为的多维对齐。MinIO作为兼容S3协议的高性能开源方案,广泛应用于文件托管、备份归档与数据湖构建等场景。但实际落地中,Windows服务注册失败、预签名URL两小时失效、Nginx反向代理导致CORS或重定向异常等高频问题,往往源于对`MINIO_SERVER_URL`、`MINIO_DOMAIN`等环境变量与协议语义的误读。本文聚焦生产级配置逻辑,解析地址可达性、协议一致性与域名权威性三大约束,并提供可复用 阅读详情

上一篇文章概述与罗列了"全局配置块、events配置块、http全局块"的基本配置与属性,本篇文章将继续深入server块的配置项,以及相关应用。

上篇文章地址:Nginx基础02:配置文件nginx.conf(Part1)

如何使用本篇文章

  • 本文作为一篇高度总结和罗列nginx.conf中所有的基础配置项,循规蹈矩地按照文章的顺序阅读的方式不可取

  • 笔者建议所有读者,先看目录,掌握Nginx都有哪些基础的配置块,再想要了解那一个配置块时,再详细去看

  • 作为一篇字典类的文章,建议读者善用浏览器的全文查找功能,按Ctrl + F调出查找功能,搜索你感兴趣的关键字,针对性地学习

正式开始前,还是再次强调server块在配置文件中的位置:

http-server块

server块和“虚拟主机”的概念有密切联系

  • 虚拟主机技术主要应用于HTTP、FTP及EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。从用户角度来看,一台虚拟主机和一台独立的硬件主机是完全一样的。

  • 在使用Nginx服务器提供Web服务时,利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器,也无需为每个网站对应运行一组Nginx进程。虚拟主机技术使得Nginx服务器可以在同一台服务器上只运行一组Nginx进程,就可以运行多个网站。

  • 一个http块都可以包含多个server块,而每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务(或网站)。

公有配置

error_page指令

  • 配置Nginx出现错误时,返回自定义页面以及错误代码,或将浏览器重定向到其他URI。

  • 出现404错误时,响应根目录下的404.html文件:error_page 404 /404.html;

防盗链

valid_referers none | blocked | server_names | string...

  • 功能:控制是否需要检验referer,设定校验referer时的校验值

  • 应用场景:防盗链

  • 参数

  • none:如果Header中的Referer为空,允许访问

  • blocked:在Header中的Referer不为空,但是该值被防火墙或代理进行伪装过,如不带"http://" 、"https://"等协议头的资源允许访问。

  • server_names:指定具体的域名或者IP。也就是说Request中的Referer必须为这里指定的参数,才让访问

  • string:可以支持正则表达式和*的字符串。如果是正则表达式,需要以`~`开头表示

  • 位置:server、location

  • 防盗链实现原理:将Request中的Referer与valid_referers设定的值进行比对,如果匹配到了就将$invalid_referer变量置0,如果没有匹配到,则将$invalid_referer变量置为1,通过if语句判定不符合条件的响应403

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name res.hackyle.com;
    
    ssl_certificate "/etc/nginx/cert/res.hackyle.com.pem";
    ssl_certificate_key "/etc/nginx/cert/res.hackyle.com.key";
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  10m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
    
    #防盗链:验证所有请求中的Referer是否来自*.hackyle.com,否则响应403
    valid_referers blocked *.hackyle.com;
       if ($invalid_referer){
        return 403;
    }
    
    #客户端:增删改查的接口
    #对外提供静态资源的地址:https://res.hackyle.com/桶名/年份/月份/uuid.文件拓展名
    location / {
        proxy_pass http://localhost:9000/;
    }
}

地址重写

rewrite regex replacement [flag];

  • 地址重写(Rewrite):等价于请求重定向;地址转发(Forward):等价于请求转发

  • 功能:将请求中的regex替换为replacement

  • 参数

  • regex:匹配URI中将要被替换的内容

  • replacement:替换成谁。如果该字符串是以"http://"或者"https://"开头的,则不会继续向下对URI进行其他处理,而是直接返回重写后的URI给客户端。

  • flag:用来设置rewrite对URI的处理行为

  • last:

  • break

  • redirect

  • permanent

  • 位置:server、location、if

rewrite_log on | off(默认值);

  • 功能:开启后,URL重写的相关日志将以notice级别输出到error_log指令配置的日志文件汇总。

  • 位置:http、server、location、if

流程控制

set $variable value;

  • variable:变量的名称,用"$"作为变量的第一个字符,且不能与Nginx服务器预设的全局变量同名。

  • value:变量的值,可以是字符串、其他变量或者变量的组合等。

  • 位置:server、location、if

if (condition){...}

  • 语法要求:if与左括号之间存在一个空格

  • 位置:server、location

  • condition的写法

  1. 变量名:对应的值为空或者是0,if都判断为false,其他条件为true。

  1. "="和"!=":满足条件为true,不满足为false。例如:if ($request_method = POST){ return405; }

  1. 正则表达式:匹配成功返回true,否则返回false。变量与正则表达式之间使用"~","~*","!~","!~\*"来连接。

  1. "~"代表匹配正则表达式过程中区分大小写,

  1. "~\*"代表匹配正则表达式过程中不区分大小写

  1. "!~"和"!~\*"刚好和上面取相反值,如果匹配上返回false,匹配不上返回true

  1. 例子:

if ($http_user_agent ~MSIE){

#$http_user_agent的值中是否包含MSIE字符串,如果包含返回true

}

  1. 注意:正则表达式字符串一般不需要加引号,但是如果字符串中包含"}"或者是";"等字符时,就需要把引号加上。

  1. 文件是否存在:

if (-f $request_filename){

#判断请求的文件是否存在。文件存在时返回true

}

if (!-f $request_filename){

#判断请求的文件是否不存在。文件不存在且文件目录存在时返回true,其他情况返回false

}

  1. 判断请求的目录是否存在使用"-d"和"!-d"

  1. 当使用"-d"时,如果请求的目录存在,if返回true,如果目录不存在则返回false

  1. 当使用"!-d"时,如果请求的目录不存在但该目录的上级目录存在则返回true,该目录和它上级目录都不存在则返回false,如果请求目录存在也返回false.

  1. 判断请求的目录或者文件是否存在使用"-e"和"!-e"

  1. 当使用"-e",如果请求的目录或者文件存在时,if返回true,否则返回false.

  1. 当使用"!-e",如果请求的文件和文件所在路径上的目录都不存在返回true,否则返回false

  1. 判断请求的文件是否可执行使用"-x"和"!-x"

  1. 当使用"-x",如果请求的文件可执行,if返回true,否则返回false

  1. 当使用"!-x",如果请求文件不可执行,返回true,否则返回false

break;

中断当前作用域break后面的指令,即位于它前面的指令配置生效,位于后面的指令配置无效

位置:server、location、if

return code [text] | code URL |URL;

  • 功能:立即响应给客户端,其后面的配置都将失效

  • 参数

  • code:状态代码

  • text:响应体内容,支持变量的使用

  • URL:响应URL地址,客户端收到后会重定向

  • 位置:server、location、if

listen: 监听端口

Listen指令:指定本个server所使用的端口(监听端口)

  • listenaddress[: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]];

  • listenport

[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]];

  • listenunix: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]];

参数

address:监听请求来的IP地址

  • 如果是IPv6的地址,需要使用中括号“[]”括起来,比如[fe80::1]等。

  • 也即本个server只针对指定请求IP的访问。

port:端口号

  • 如果只定义了IP地址没有定义端口号,就使用80端口。

  • 要是没配置listen指令,且Nginx以超级用户权限运行,则使用:80,否则使用:8000。

  • 多个虚拟主机可以同时监听同一个端口,但是server_name需要设置成不一样;

default_server:默认server

  • 如果没有找到address:port,则使用本个配置指定的地址。

backlog=number

  • 设置监听函数listen()最多允许多少网络连接同时处于挂起状态

  • 在FreeBSD中默认为-1,其他平台默认为511。

accept_filter=filter:设置监听端口对请求的过滤,被过滤的内容不能被接收和处理。

  • 本指令只在FreeBSD和NetBSD 5.0+平台下有效。

  • filter可以设置为dataready或httpready,具体参阅Nginx的官方文档。

bind:标识符

  • 使用独立的bind()处理此address:port;

  • 一般情况下,对于端口相同而IP地址不同的多个连接,Nginx服务器将只使用一个监听命令,并使用bind()处理端口相同的所有连接。

实例

  • listen 127.0.0.1:8000; #只监听来自0.0.1这个IP,请求8000端口的请求

  • listen localhost:8000; #和上面效果一样

  • listen 127.0.0.1; #只监听来自0.0.1这个IP,请求80端口的请求(不指定端口,默认80)

  • listen 8000; #监听来自所有IP请求8000端口的请求

  • listen *:8000; #和上面效果一样

server_name: 指定域名

功能:用于配置虚拟主机的名称

语法:server_name name…;

实例:server_name myserver.com www.myserver.com

name:域名,多个用空格分割

  • name可以使用通配符“*”,注意的是通配符不能出现在域名的中间,只能出现在首段或尾段

  • *:所有顶级域名下,名为“baidu”的域

  • 错误的配置:*.cn www.itheima.c*

  • name可以使用正则:例如:server_name ~^www\.(\w+)\.com$;

name匹配优先级:

  1. 准确匹配server_name

  1. 通配符在开始时匹配server_name成功

  1. 通配符在结尾时匹配server_name成功

  1. 正则表达式匹配server_name成功

location: URL映射

功能:映射URL请求(支持正则)到具体的页面、处理器上

语法:location [ = | ~ | ~* | ^~] uri {

root请求访问的根目录(使用绝对路径);

index设置网站的首页;

}

URI映射

  • “=”:进行普通字符精确匹配,也就是完全匹配。如果已经匹配成功,就停止继续向下搜索并立即处理此请求。

  • “^~”:前缀匹配。如果匹配成功,则不再匹配其他location。

  • “~”:表示执行一个正则匹配,区分大小写。

  • “~*”:表示执行一个正则匹配,不区分大小写。

匹配的优先级:

  1. 等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项,停止搜索。

  1. ^~类型表达式,不属于正则表达式。一旦匹配成功,则不再查找其他匹配项,停止搜索。

  1. 正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。

  1. 常规字符串匹配类型。按前缀匹配。

  1. /通用匹配,如果没有匹配到,就匹配通用的

前置参数(“=”)示例

server {
    listen 80;
    server_name 127.0.0.1;
    location =/abc {
        ...
    }
}
可以匹配到
http://192.168.200.133/abc
http://192.168.200.133/abc?p1=TOM
匹配不到
http://192.168.200.133/abc/
http://192.168.200.133/abcdef

前置参数(“~”)示例

server {
    listen 80;
    server_name 127.0.0.1;
    location ~^/abc\w${ #红色部分是正则,^表示一行的开始,$表示一行的结束,/表示请求中的斜杠
        default_type text/plain;
        return 200 "access success";
    }
}
server {
    listen 80;
    server_name 127.0.0.1;
    location ~*^/abc\w${
        default_type text/plain;
        return 200 "access success";
    }
}

前置参数(“^~”)示例

server {
    listen 80;
    server_name 127.0.0.1;
    location ^~/abc{
        default_type text/plain;
        return 200 "access success";
    }
}

路径替换

请求别名:alias file-path |directory-path;

例子:

location /img/ {

alias /usr/local/image/; #将”/img/”替换为”/usr/local/image/”

#例如:请求/img/aa.jpg,在本机中将会被替换为/usr/local/image/aa.jpg

}

指定根目录:root path;

例子:

location /img/ {

root /usr/data/; #请求/img/aa.jpg,将会拼接为/usr/data/img/aa.jpg

}

反向代理

Reverse Proxy:用Nginx来接收internet上的连接请求,然后将请求转发给内部网络上的服务器去具体处理

proxy_pass URL;

  • 设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。

  • URL为要设置的被代理服务器地址,包含传输协议(`http`,`https://`)、主机名称或IP地址加端口号、URI等要素。

  • 位置:location

proxy_set_header field value;

  • 更改Nginx服务器接收到的客户端请求的请求头信息,然后将新的请求头发送给代理的服务器

  • 默认值proxy_set_header Host $proxy_host; proxy_set_header Connection close;

  • 位置:http、server、location

  • 例子:

proxy_redirect redirect replacement; | proxy_redirect default; |proxy_redirect off;

  • 重置头信息中的"Location"和"Refresh"的值

  • 参数

  • redirect:目标,Location的值;replacement:要替换的值

  • default:将location块的uri变量作为replacement,将proxy_pass变量作为redirect进行替换

  • off:关闭proxy_redirect

  • 默认:proxy_redirect default;

  • 位置:http、server、location

proxy_buffering on(默认值)|off;

  • 开启或者关闭代理服务器的缓冲区

  • 位置:http、server、location

proxy_buffers number size;

  • 指定单个连接从代理服务器读取响应的缓存区的个数和大小

  • 默认值:proxy_buffers 8 4k | 8K;(与系统平台有关)

  • number:缓冲区的个数

  • size:每个缓冲区的大小,缓冲区的总大小就是number*size

  • 位置:http、server、location

proxy_buffer_size size;

  • 设置从被代理服务器获取的第一部分响应数据的大小。保持与proxy_buffers中的size一致即可,当然也可以更小。

  • 默认值:proxy_buffer_size 4k | 8k;(与系统平台有关)

  • 位置:http、server、location

proxy_busy_buffers_size size;

  • 限制同时处于BUSY状态的缓冲总大小。

  • 默认值proxy_busy_buffers_size 8k | 16K;

  • 位置http、server、location

proxy_temp_path path;

  • 当缓冲区存满后,仍未被Nginx服务器完全接受,响应数据就会被临时存放在磁盘文件上,该指令设置文件路径

  • 位置http、server、location

proxy_temp_file_write_size size;

  • 用来设置磁盘上缓冲文件的大小

  • 默认值:proxy_temp_file_write_size 8K\|16K;

  • 位置http、server、location

SSL

HTTPS是一种通过计算机网络进行安全通信的传输协议。它经由HTTP进行通信,利用SSL/TLS建立全通信,加密数据包,确保数据的安全性。

SSL(Secure Sockets Layer)安全套接层

TLS(Transport Layer Security)传输层安全

ssl_certificate file;

  • 为当前这个虚拟主机指定一个带有PEM格式证书的证书。

  • 位置:http、server

ssl_ceritificate_key file;

  • 指定PEM secret key文件的路径

  • 位置:http、server

ssl_sesion_cache off | none | [builtin[:size]] [shared:name:size]

  • 配置用于SSL会话的缓存

  • 默认值:ssl_session_cache none;

  • 参数

  • off:禁用会话缓存,客户端不得重复使用会话

  • none:禁止使用会话缓存,客户端可以重复使用,但是并没有在缓存中存储会话参数

  • builtin:内置OpenSSL缓存,仅在一个工作进程中使用。

  • shared:所有工作进程之间共享缓存,缓存的相关信息用name和size来指定

  • 位置:http、server

ssl_session_timeout time;

  • 开启SSL会话功能后,设置客户端能够反复使用储存在缓存中的会话参数时间。

  • 默认值:ssl_session_timeout 5m;

  • 位置:http、server

ssl_ciphers ciphers;

  • 指出允许的密码,密码指定为OpenSSL支持的格式

  • 默认值:ssl_ciphers HIGH:!aNULL:!MD5;

  • 位置:http、server

ssl_perfer_server_ciphers on |off(默认值);

  • 指定是否服务器密码优先客户端密码

  • 位置:http、server

访问控制

允许访问:allow [ address | CIDR | all ]

  • 使用字段:http, server, location, limit_except

禁止访问:deny all/IP网段;

  • 使用字段:http, server, location, limit_except

例子:

location / {
    deny 10.1.100.100;  #不允许该IP访问
    allow 10.1.200.0/24;  #允许该网段访问
    allow 192.168.1.0/16;  #允许该网段访问
    deny all;  #除了allow允许的网段,其他请求IP都禁止访问
}

内置变量

nginx的配置文件中可以使用的内置变量以美元符$开始,也有人叫全局变量。其中,部分预定义的变量的值是可以改变的。

$args:

  • 这个变量等于请求行中的参数,同$query_string。

  • 例如:/aa/bb?name=kyle&age=22中的“name=kyle&age=22”

$content_length :请求头中的Content-length字段。

$content_type :请求头中的Content-Type字段。

$document_root :当前请求在root指令中指定的值。

$host :请求主机头字段,否则为服务器名称。

$http_user_agent :客户端agent信息

$http_cookie :客户端cookie信息

$limit_rate :这个变量可以限制连接速率。

$request_method :客户端请求的动作,通常为GET或POST。

$remote_addr :客户端的IP地址。

$remote_port :客户端的端口。

$remote_user :已经经过Auth Basic Module验证的用户名。

$request_filename :当前请求的文件路径,由root或alias指令与URI请求生成。

$scheme :HTTP方法(如http,https)。

$server_protocol :请求使用的协议,通常是HTTP/1.0或HTTP/1.1。

$server_addr :服务器地址,在完成一次系统调用后可以确定这个值。

$server_name :服务器名称。

$server_port :请求到达服务器的端口号。

$request_uri :包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。

$uri :不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。

$document_uri :与$uri相同

Nacos 2.3.2 Docker 集群部署:3节点高可用配置与 MySQL 8.0 持久化实战 本文详细介绍了如何使用 Docker 部署 Nacos 2.3.2 三节点高可用集群,并集成 MySQL 8.0 实现数据持久化。通过 Docker Compose 配置、环境变量设置和集群验证步骤,帮助开发者在生产环境中快速搭建稳定可靠的 Nacos 集群,提升微服务架构的可用性和扩展性。 阅读详情

相关推荐

机器学习模型生产化落地:从Notebook到稳定服务的全流程实践

机器学习模型部署不是简单的代码上线,而是将实验性模型重构为可运维、可观测、可回滚的软件服务。其核心在于解决模型序列化安全、特征一致性、推理性能优化、环境确定性及数据漂移监控等工程问题。ONNX Runtime因其跨框架兼容性、CPU高效推理与轻量集成特性,成为树模型与中小规模神经网络在非GPU环境下的首选推理引擎;FastAPI则凭借原生OpenAPI支持、结构化日志与中间件机制,显著降低可观测性建设成本。本文聚焦真实业务场景中的17项关键检查项、灰度发布策略与故障排查命令,覆盖电商推荐、金融风控、工业预测

weixin_30733003的博客 310

常见的nginx的配置选项

Google 上有丰富的 Nginx 的教程和样本配置文件,但很多时候时候,配置这些是需要一些技巧。 Include 文件 不要在您的主 nginx.conf 文件中配置所有的东西,你需要分成几个较小的文件。您的同事会很感激你的。比如我的结构,我定义我的 upstream 的 pool 的为一个文件,和一个文件定义 location 处理服务器上其它的应用。 例子: u

西伯利亚狼 878

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

nginx 源码学习笔记(十八)—— ngx_add_inherited_sockets 继承的sockets

之前几节有讲过多进程的创建过程和子进程所处理的事情,今天要讲一下nginx里面main函数的另一个主要的操作ngx_add_inherited_sockets。 ngx_add_inherited_sockets:服务器监听套接字的封装。 本文的主要灵感来自:http://blog.csdn.net/livelylittlefish/article/details/7277607,感谢作者分享...

数据库天地 318

Windows 10/11下彻底卸载Chrome的终极指南(附一键清理注册表脚本)

本文提供了一份在Windows 10/11系统中彻底卸载Google Chrome浏览器的终极指南。针对标准卸载后用户数据与注册表项残留的问题,文章详细介绍了从应用程序层、用户数据层到系统集成层的三层深度清理方法,并重点提供了安全高效的注册表清理脚本,确保浏览器所有痕迹被完全移除,解决重装冲突并释放磁盘空间。

elastic6hunter的博客 781

C#粘包和分包问题及解决方法

一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解:  下面对上面的图进行解释:  1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。  2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲...

weixin_42033401的博客 7767

location重定向和nginx代理

重定向:就是输入的网站之后会跳转到设定的目标网址。使用场景1、更换域名2、特殊情况,比如页面需要维护,但是不想中断服务,可以实现url的跳转,访问正常的服务器。3、防盗链。

云计算练习生X的博客 1664

聚类教程:cisTopic——来自单细胞表观基因组学数据的顺式调控主题的概率建模

之前运行这步的时候报错了如下: 后来发现原因是Ubuntu自动把R包更新到4.2版本,但是Rstudio版本没有更新,更新Rstudio即可,更新Rstudio的教程看此教程:。

watermel__的博客 1051

Nginx配置X-Forwarded-Proto

需求 最近公司在做全站https,架构上面有Nginx+tomcat Nginx+php,且nginx配置了ssl,tomcat和php项目使用https协议 但是,发送的是https url请求,php和tomcat的log里面记录的都是http的请求。 解决方法很简单,只需要分别配置一下 Nginx 和 Tomcat 就好了,而不用改程序。 配置 Nginx 的转发选项: ser...

weixin_30598225的博客 1万+

基于Python的微信聊天记录分析——数据获取

本篇为“基于Python的微信聊天记录分析”第一篇,主要涉及数据获取,包括Python环境配置、WeChatMsg项目配置和运行、获取聊天记录等内容,流程简单、比较基础,后续这个系列会涉及基于Python的数据处理、统计分析、NLP技术等内容。希望和大家多多交流,共同进步!

Henryli1202的博客 1万+

Serdes之什么是(CDR)?

光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。光收发器和电收发器使用的是我们所说的串行数据通信。在这种通信方式中,数据位是按顺序一个接一个地传输的。目前市场上大多数收发器都没有专用的时钟输入,因此时钟恢复和数据重新定时等功能是在收发器外部(即在主板上)进行的。接收端则需要恢复时钟以采样串行线上的数据。为了实现这一点,接收端需要一个与输入数据频率大致相同的时钟。通过使参考时钟与输入数据信号的跳变相位对齐,可以生成一个恢复的时钟。这被称为时钟恢复。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2388

nginx 常见参数以及重定向参数配置

nginx 各参数翻译,作用 $arg_PARAMETER #这个变量包含GET请求中,如果有变量PARAMETER时的值。 $args #这个变量等于请求行中(GET请求)的参数,例如foo=123&bar=blahblah; $binary_remote_addr #二进制的客户地址。 $body_bytes_sent #响应时送出的body字节数数量。即使连接中断,这个数据也是精

zhsh87的专栏 3万+

把 Client 当成 ABAP 系统的多租户底座:从 sy-mandt 到 CDS_CLIENT 的隔离机制与工程实践

本文深入解析SAP ABAP系统中Client概念的本质与应用。Client不仅是数据表的MANDT字段,更是会话级别的隔离边界,贯穿用户登录、授权和数据访问控制全过程。文章从ABAP SQL的隐式Client处理机制出发,详细介绍了USING CLIENT、USING ALL CLIENTS等安全跨客户端访问方式,并对比了传统CLIENT SPECIFIED的风险。同时阐述了ABAP CDS中@ClientHandling注解的类型与算法选择,包括#AUTOMATED自动拼接和#SESSION_VARIA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 182

Linux文件系统基础管理

Linux文件系统基础管理摘要 本文介绍了Linux文件系统的基本管理知识,主要包括: 设备识别:Linux通过/dev目录下的块设备文件访问存储设备,如SATA(/dev/sda)、NVMe(/dev/nvme0n1)等。设备通常被划分为多个分区使用。 文件系统概念:文件系统是在存储设备上组织文件的方法和数据结构,需要通过挂载到目录(挂载点)才能访问。 常用管理命令: lsblk:查看块设备信息 df:显示文件系统使用情况(可搭配-hT选项) du:查看目录/文件磁盘占用空间(-sh选项常用) 实际应用:

2401_83099491的博客 280

paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本)

PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署。后续会补充c++ onnxruntime部署

a486259的博客 1914

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Linux用户管理,权限设置,网络管理,磁盘管理,软件包管理,论坛搭建

本文详细介绍了Linux系统管理中的核心概念与实用操作,主要内容包括: 环境变量与命令管理 PATH变量配置与优先级 命令别名(alias)的创建与永久化 history命令历史记录配置 用户与权限管理 用户分类与配置文件解析 密码策略与账户锁定机制 用户/组创建、修改与删除 sudo权限分配实践 文件系统权限 权限表示与数字编码 特殊权限(SUID/SGID/ACL) umask值与默认权限控制 权限修改(chmod/chown) 网络配置 nmcli工具使用详解 静态/动态IP配置 主机名与域名解析 软

2301_80849456的博客 383

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Linux系统管理:存储分区、文件系统

浏览器访问 http://物理主机IP/,例如 http://192.168.42.100:80。浏览器访问 http://物理主机IP/,例如 http://192.168.42.100:80。如果/etc/fstab中具备相应条目,则挂载文件系统的时候,只需要写一个名称。如果/etc/fstab中具备相应条目,则挂载文件系统的时候,只需要写一个名称。Linux服务网络配置信息主要包括哪些?大容量的硬盘,分区使用:C盘系统盘,D盘办公,E盘娱乐。设置/dev/sdb1 自动挂载到 /mnt/web。

Kismet_nvi的博客 402

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux服务器迁移Final Steps:rsync、crontab、awk与systemd协同实战

Linux服务器迁移不是简单文件拷贝,而是涉及系统状态接管的精密工程。其核心在于数据一致性(rsync增量同步与元数据保护)、时间调度可靠性(crontab精准控制冻结/校验窗口)、配置智能解析(awk快速定位路径、权限、依赖等关键风险点)以及服务生命周期治理(systemd对WorkingDirectory、依赖链、重启策略的强制契约)。这些能力共同支撑起高可用、可审计、符合等保要求的生产环境迁移,尤其在CentOS向Rocky Linux、AlmaLinux或openEuler等国产Linux发行版演进

defkaug153461的博客 447

ngx_http_header_filter

当客户端(如浏览器、爬虫、API 调用工具)向服务器发起 HTTP 请求时,服务器在返回的响应头中通常会包含 Server 字段,以“自报家门”。如果状态码不属于 2xx、3xx、4xx、5xx 中的任何一种(比如自定义的 599 或 600),将所有模块设置好的响应头信息,按照 HTTP/1.1 协议规范序列化为一个连续的字节流,在早期的互联网中,某些客户端或脚本可能会根据 Server 头返回的服务器类型和版本,值的第一个字符是 /,表明它是一个以 / 开头的路径(例如 /index.html),

weixin_41812346的博客 310

机器学习模型生产化落地:从Notebook到高可用服务的完整路径

机器学习模型部署不是简单运行predict(),而是构建可监控、可回滚、可计费的生产级服务。其核心在于解耦数据加载、特征计算、模型推理与服务编排四层异构系统,并通过ONNX标准化序列化、Triton/KServe模型服务、Feature Store特征一致性保障等关键技术实现跨环境稳定推理。技术价值体现在P99延迟可控、错误语义清晰、镜像体积精简与SLO精准治理;典型应用场景覆盖电商推荐、金融反欺诈与工业预测性维护。本文聚焦真实产线中模型交付物标准化、K8s声明式发布及特征-模型一致性保障等关键实践。

weixin_33762130的博客 398

本地部署Qwen2-1.5B对话系统:零API、低显存、高可控的开源实践

大语言模型(LLM)本地化部署是保障数据隐私、降低调用延迟与规避厂商锁定的关键技术路径。其核心原理在于通过模型量化(如GGUF格式)、轻量推理引擎(如llama.cpp)与模块化架构设计,在消费级硬件上实现高效可控的文本生成。该方案显著提升知识工作者对AI行为的可解释性与可干预性,适用于企业内网AI助手、合规敏感场景及边缘设备推理等需求。本文聚焦Qwen2-1.5B模型在RTX 3060与MacBook M2平台上的实测部署,涵盖量化参数校准(-g 128)、chat-template适配、流式响应容错及无

djfiew7234的博客 412

Linux文件系统全网精讲:设备识别、挂载卸载、磁盘排查一站式实战

本文从零梳理Linux文件系统完整知识体系,搭配真实可落地的实操命令、故障解决方案、经典运维案例,适合新手学习、老手复盘,可直接用于生产环境参考。

fb_12345的博客 408

机器学习生产化落地:从Notebook到稳定服务的四大核心实践

机器学习模型部署不是简单的代码上线,而是面向高可用、低延迟、可监控的工程系统建设。其本质涉及模型服务化、特征工程解耦、环境一致性保障与全链路可观测性四大技术支柱。在真实业务场景中,模型需满足P99延迟约束、GPU显存隔离、输入输出契约校验等硬性SLO,同时应对数据漂移、依赖冲突、冷启动失败等典型故障。关键技术包括Triton/KServe模型服务框架、Feast特征仓库、BuildKit确定性构建及OpenTelemetry黄金三角追踪。本文聚焦于已调优模型如何跨越‘最后一公里’,实现从实验室原型到7×24

weixin_30607029的博客 315

机器学习生产化:从Notebook到高可用服务的七道关卡

机器学习模型部署不是简单的代码上线,而是涉及数据契约、模型序列化、服务治理、特征管理、可观测性等多维度的系统工程。其核心在于将不可控的数据漂移、刚性的服务SLA与模糊的责任边界,转化为可测量、可回滚、可追责的工程实践。关键技术包括TorchScript安全序列化、KServe专用ML网关、Feast特征仓库、Prometheus分层监控及Argo Rollouts灰度发布。本文聚焦真实产线中高频踩坑场景——如CUDA内存碎片、动态批处理延迟抖动、特征缓存导致A/B测试失真等,提供经23个行业项目验证的落地配

weixin_33739523的博客 458

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6167

23.Linux 文件系统基本管理(从零开始学)

Linux 存储设备以/dev 下块设备文件存在,磁盘分区格式化文件系统后必须挂载到目录树才可访问;依靠lsblk/df/du查看磁盘与空间占用,管理挂载卸载、lsof/fuser解决挂载点占用;文件检索分为数据库快速检索locate与实时多条件精准检索find整套工具遵循 Linux 单一职责小工具组合完成运维任务的设计思想。

fengkai4545的博客 384
上一篇: Nginx基础02:配置文件nginx.conf(Part1)
下一篇: “树形List“与“扁平List“互转(Java实现)
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值