nginx
文章平均质量分 88
竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
这个作者很懒,什么都没留下…
展开
-
Nginx常见的错误及解决方法
1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf 报错内容:sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre转载 2021-01-07 08:56:55 · 8880 阅读 · 0 评论 -
利用stream做ssl passthrough
利用了nginx的stream配置,stream就是tcp的转发,如果只想绑定一个443端口,通过用户访问的域名来区分不同的服务,类似ingress的功能。用户可以采用ssl passthrough模式。原来nginx可以打开一个预读开关,可以(在握手阶段)把域名读出来,如下面的preread on。stream { map $ssl_preread_server_name $name { app1 app1_backend; app2 app2_backe原创 2020-12-22 08:56:36 · 1867 阅读 · 0 评论 -
nginx四层代理配置
简介nginx常用于四层负载均衡和web service的代理转发。 nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等,类似阿里云slb的 tcp协议模式。默认情况下,此模块不构建,应使用配置参数启用 --with-stream 。安装# tar -xvf nginx-1.10.3.tar.gz#cd nginx-1.10.3#./configure --prefix=/usr/local/nginx --with-http_ssl_module原创 2020-12-22 00:56:14 · 3181 阅读 · 1 评论 -
nginx upstream中带下划线bug,客户端会报400错误
现象在本地可以获取前端header传的参数,但是部署到服务器获取的就是400(服务器地址用nginx做了代理)原因nginx 对http请求头字段做了限制,默认 underscores_in_headers 为off,表示如果header字段中包含下划线,则忽略掉,部署后就获取不到。解决办法:方法1:在header里不要用 “_” 下划线,可以用驼峰命名或者中划线代替;方法2:在nginx里的 nginx.conf文件中配置http的部分添加 : underscores_in_headers原创 2020-10-24 01:23:16 · 859 阅读 · 0 评论 -
使用nginx -g daemon off启动nginx容器的原因
背景知识:Docker 容器启动时,默认会把容器内部第一个进程,也就是pid=1的程序,作为docker容器是否正在运行的依据,如果 docker 容器pid=1的进程挂了,那么docker容器便会直接退出。原因nginx默认是以后台模式启动的,Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。所以一旦执行完自定义CMD,nginx容器也就退出了。为了保持nginx的容器不退出,应该关闭nginx后台运行..原创 2020-07-22 01:26:02 · 23482 阅读 · 1 评论 -
openresty各个阶段执行的指令解释及其执行顺序
openresty各个阶段执行的指令解释及其执行顺序:init_by_lua*:初始化 nginx 和预加载 lua(nginx 启动和 reload 时执行);init_worker_by_lua*:每个工作进程(worker_processes)被创建时执行,用于启动一些定时任务,比如心跳检查,后端服务的健康检查,定时拉取服务器配置等;ssl_certificate_by_lua*:对 https 请求的处理,即将启动下游 SSL(https)连接的 SSL 握手时执行,用例:按照每个请求设置.原创 2020-07-03 02:01:33 · 2196 阅读 · 0 评论 -
HTTPS之SNI介绍
1. 介绍 早期的SSLv2根据经典的公钥基础设施PKI(Public Key Infrastructure)设计,默认一台服务器(或者说一个IP)只会提供一个服务,所以在SSL握手时,服务器端可以确信客户端申请的是哪张证书。 但是让人万万没有想到的是,虚拟主机大力发展起来了,这就造成了一个IP会对应多个域名的情况。解决办法有一些,例如申请泛域名证书,对所有*.yourdomain.com的域名都可以认证,但如果你还有一个yourdomain.net的域名,那就不行了。 在HTT转载 2020-06-30 02:27:46 · 2760 阅读 · 0 评论 -
nginx设置响应连接是长连接或者短连接
背景根据需求,需要使用nginx返回长连接和短连接响应。配置思路长连接: http { --------------------------- keepalive_requests 100000; //这里实际只需要大于1就可以-------------------- }短连接: http { --------------------------- keepalive_requests 1; //这里必须配置为1-----------------原创 2020-06-21 00:46:31 · 3598 阅读 · 0 评论 -
nginx 读取自定义header
为了排查线上的bug,需要在nginx的日志中,打印客户端上传上来的header头部信息.根据网络上资料,以及自己实践总结:1、 http自定义请求头前面添加"http_"2、中划线变下划线3. 大写变小写例如:获取HTTP header中的Trade-Code字段:Trade-Code ===> http_trade_code可以根据请求头做一些简单的处理:if ($http_trade_code = ‘xxxx’){//进行处理}...原创 2020-06-13 02:38:15 · 1087 阅读 · 2 评论 -
Nginx 转发匹配规则
一、正则表达式匹配~ 为区分大小写匹配~* 为不区分大小写匹配!~ 和 !~* 分别为区分大小写不匹配及不区分大小写不匹配二、文件及目录匹配-f 和 !-f 用来判断是否存在文件-d 和 !-d 用来判断是否存在目录-e 和 !-e 用来判断是否存在文件或目录-x 和 !-x 用来判断文件是否可执行三.rewrite指令的最后一项参数为flag标记,flag标记有...转载 2020-03-24 00:01:40 · 1612 阅读 · 0 评论 -
nginx缓存配置实例
参数解释proxy_buffering:proxy_buffering这个参数用来控制是否打开后端响应内容的缓冲区,如果这个设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个指令将会失效。 但是无论proxy_buffering是否开启,对proxy_buffer_size都是生效的。proxy_buffering开启的情况下,nignx会把后...原创 2019-12-31 23:22:21 · 338 阅读 · 0 评论