nginx配置(四)

Nginx详细配置 nginx安装在公网IP为x.x.x.x的服务器上 阅读详情

ngx_http_referer_module

  1. ngx_http_referer_module模块:
    用来阻止Referer首部无有效值的请求访问,可防止盗链
  2. valid_referers none|blocked|server_names|string …;
    定义referer首部的合法可用值,不能匹配的将是非法值
    none:请求报文首部没有referer首部
    blocked:请求报文有referer首部,但无有效值
    server_names:referer首部中包含本主机名
    arbitrary_string:任意字符串,但可使用*作通配符
    regular expression:被指定的正则表达式模式匹配到的字符串,要使用~开头
  3. 举例:
server {
        listen 80;
        server_name www.xuepeng.org;
        root /data/www;
        access_log /var/log/xuepeng.org.log main;
        valid_referers none block server_names ~(.*)\.google\.(.*) ~(.*)\.baidu\.(.*);  // 白名单
        if ( $invalid_referer ) {   //除白名单之外的
                return 403 "Forbidden Access";
        }
}

ngx_http_proxy_module

反向代理

server {
    listen 80;
    server_name www.a.com;
    root /data/www/html/a;
#   location / {
#       proxy_pass  http://192.168.43.27:8080;
#   }   
    location /images {
        proxy_pass http://192.168.43.27;
    }
    location ~* ^.*\.(png|jpeg|gif|bmp)$ {
        proxy_pass http://192.168.43.27;
    }
    location /api {
        proxy_pass http://192.168.43.37;
    }
    location /api/ {
        proxy_pass http://192.168.43.37/;
    }
}

注意:
proxy_pass http://hostname/uri 类似 root
proxy_pass http://hostname/uri/ 类似 alias

ip地址透传

  1. 只有一个代理服务器的时候
    proxy
location /images {
	proxy_set_header X-Real-IP $remote_addr;
	proxy_pass http://192.168.43.27;
}

real

LogFormat "%{X-Real-IP}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  1. 多个代理服务器的时候
    proxy
    location /api {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.43.37;
    }

real

LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

缓存功能

proxy_cache_path

  1. path 指定缓存的文件目录
  2. levels=levels 指定缓存的目录结构
  3. keys_zone=name:size 指定缓存的名字,缓存在内存中的大小
  4. inactive=time 指定缓存的失效时间
  5. max_size=size 指定缓存的大小
  6. proxy_cache zone | off; 默认off 是否开启缓存
  7. proxy_cache_key string;
    默认值:proxy_cache_key s c h e m e scheme schemeproxy_host$request_uri;
  8. proxy_cache_valid [code …] time; 对指定状态码的内容作缓存,缓存时间
  9. proxy_cache_use_stale;
    在被代理的后端服务器出现哪种情况下,可直接使用过期的缓存响应客户端
    proxy_cache_use_stale error | timeout | invalid_header | updating |
    http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off …
  10. proxy_cache_methods GET | HEAD | POST …;
    对哪些客户端请求方法对应的响应进行缓存,GET和HEAD方法总是被缓存
  11. 举例
 // 只能应用于 http 中,定义缓存
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2:2 keys_zone=proxycache:20m inactive=120s max_size=1g;
//调用缓存
    proxy_cache proxycache;
    proxy_cache_key $request_uri;
    proxy_cache_valid 200 302 301 1h;
    proxy_cache_valid any 1m;

信息隐藏功能

proxy_hide_header field;
用于隐藏后端服务器特定的响应首部,默认nginx在响应报文中不传递后端服务器的首部字段Date, Server, X-Pad, X-Accel等
示例:
proxy_hide_header Etag; 隐藏 Etag

显示隐藏的信息

proxy_pass_header field;
默认nginx在响应报文中不传递后端服务器的首部字段Date, Server, X-Pad, X-Accel等参数,如果要传递的话则要使用 proxy_pass_header field声明将后端服务器返回的值传递给客户端
示例:
proxy_pass_header Server; 显示后端服务器的版本信息

ngx_http_headers_module

ngx_http_headers_module 模块
向代理服务器给客户端的响应报文添加自定义首部,或修改指定首部的值

add_header name value [always];

  1. add_header X-Cache $upstream_cache_status; 添加缓存命中率的信息
  2. add_header X-Via $server_addr;
  3. add_header X-Accel $server_name;

add_trailer name value [always];
添加自定义响应信息的尾部, 1.13.2版后支持

proxy_connect_timeout time;
定义与后端服务器建立连接的超时时长,如超时会出现502错误,默认为60s,一般不建议超出75s

proxy_send_timeout time;
对后端服务器send,将请求发送给后端服务器的超时时长;默认为60s

proxy_read_timeout time;
从后端服务器read,等待后端服务器发送响应报文的超时时长,默认为60s

proxy_ignore_client_abort off;
当客户端网络中断请求时,nginx服务器中断其对后端服务器的请求。即如果此项设置为on开启,则服务器会忽略客户端中断并一直等着代理服务执行返回,如果设置为off,则客户端中断后nginx也会中断客户端请求并立即记录499日志,默认为off

proxy_http_version 1.0;
用于设置nginx提供代理服务的HTTP协议的版本,默认http 1.0

proxy_headers_hash_bucket_size 128;
当配置了 proxy_hide_header和proxy_set_header的时候,用于设置nginx保存HTTP报文头的hash表的上限

proxy_headers_hash_max_size 512;
设置proxy_headers_hash_bucket_size的最大可用空间

server_namse_hash_bucket_size 512;
server_name hash表申请空间大小

server_names_hash_max_size 512;
设置服务器名称hash表的上限大小

nginx配置教程之add_header的坑详解 主要给大家介绍了关于nginx配置教程之add_header坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧 立即下载

相关推荐

经纬度转换为UTM坐标

UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航。将地球划分为60个纵向的区域。每个区域宽6度,从赤道开始往南北两级方向划分。每个区域都有一个特定的字母。

weixin_45626706的博客 7275

nginx防盗链

官方地址:http://nginx.org/en/docs/http/ngx_http_referer_module.html 作用: 防止资源被盗用。 防止非正常用户访问, 占用网站资源,影响网站性能,造成影响正常用户访问 一、防盗链语法 句法: valid_referers none | blocked | server_names | string ...; 默认: - 内容: server, location 指定“ Referer” 请求标头字段值,这些值将导致将嵌入式$invalid_re

qq_37377136的博客 601

长短期记忆网络(LSTM)预测模型及其Python和MATLAB实现

LSTM 通过独特的门控机制解决了传统 RNN 的梯度消失和梯度爆炸问题,使其在处理长序列时具有显著优势。随着技术的不断发展,LSTM 及其变种(如 Bi-directional LSTM、Stacked LSTM 等)有望在更复杂的任务中发挥重要作用。2. **可视化真实值和预测值**:通过绘图来比较真实值和预测值,判断模型的准确性。2. **输入门(Input gate)**:决定当前的输入信息对细胞状态的影响。1. **细胞状态(Cell state)**:保持信息在时间步之间的传递。

qq_45441438的博客 2055

记录Nginx proxy_set_header的坑

1. 背景 一个项目,使用nginx进行代理回源,新版本提交给测试同学后反馈说,回源Host不对。 第一反应:不应该啊,这个版本我没改回源Host相关的内容啊,是不是你环境问题?哈哈,典型的开发人员思维。不过也只是自己这么想了一下,还是赶紧解决问题了。 首先看了下代码提交记录,lua代码没有修改回源Host,排除;在回源的location中,增加了两行配置。然后就没有其他改动了。难道是location中的配置导致的? 配置文件结构如下: http { ... upstream origin_upstre

u010971572的专栏 2968

unity | 动画模块之滚动选项框

动画模块之滚动选项框

菌菌兹的博客 2074

Windows 11 部署 Docker Desktop:从 WSL 报错到服务配置的完整排障实录

本文详细记录了在Windows 11上部署Docker Desktop时遇到的WSL报错问题及完整解决方案。从Hyper-V配置、BIOS设置到系统服务检查,提供了一系列实用命令和排查步骤,帮助开发者快速解决'Unexpecter WSL error'等常见问题,实现Docker与WSL2的稳定运行。

weixin_30687051的博客 120

centos8 安装 nginx-1.13.7 报错记录

nginx安装报错

weixin_44065695的博客 2746

OpenClaw 多代理协同工作模式配置指南

OpenClaw 采用。

形上得其象,形下合于数;阴阳自济,玄理自明。 1万+

nginx的请求处理阶段

http请求格式简介 (99%) 首先介绍一下rfc2616中定义的http请求基本格式: Request = Request-Line * (( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ] 第一行是请求行(request line),用来说明请求方法,要访问的资源以及所使用的H

fdsafwagdagadg6576的专栏 1960

基于STM32姿态解算-正点原子ATK-IMU901模块标准库开发——正点原子串口角度传感器模块十轴IMU加速度气压计陀螺仪_资料编号29

购买了正点原子的ATK-IMU901模块后,发现例程给的是HAL库的,本项目将HAL库例程转换为库函数版本(基于STM32)。实战开发,亲测无误。

嵌入式阿齐Archie 3864

基于C++和Basler SDK的相机开发详解

Basler相机是德国Basler公司生产的高性能工业相机,具有高分辨率、高帧率和低噪声的特点。Basler相机广泛应用于机器视觉、工业自动化、医疗影像和安防监控等领域。高分辨率和高帧率:能够捕捉清晰、细腻的图像。多种接口:支持USB、GigE、Camera Link等多种接口,方便不同应用场景的需求。丰富的配置选项:支持多种图像格式、分辨率和帧率的配置,适应不同的应用需求。本文详细介绍了如何基于C++和Basler SDK进行相机开发,涵盖了从环境搭建、相机连接、图像采集到图像处理的完整过程。

qq_38334677的博客 2099

Nginx(四)nginx配置实例

一、反向代理实例1 实现效果 打开浏览器,在浏览器地址栏输入地址 http://192.168.253.130,跳转到 liunx 系统 tomcat 主页面中 前期准备 在 liunx 系统安装 tomcat,使用默认端口 8080 对外开放tomcat 的8080端口 在 windows 系统中通过浏览器访问 tomcat 服务器 访问过程 nginx配置 测试 二、反向代理实例 2 实现效果 使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中n

清茶与浊酒 189

轨迹优化 | 基于ESDF的共轭梯度优化算法(附ROS C++/Python仿真)

共轭梯度法的核心原理是求解优化问题的共轭向量组作为优化方向,由于优化方向间彼此正交,故每次迭代只需沿着一个方向寻优而互不影响。本文设计基于ESDF的障碍约束、曲率约束和平滑约束,基于ROS C++和Python提供了共轭梯度法的轨迹优化实践案例

FRIGIDWINTER的博客 1万+

四、nginx静态文件的配置

1. 根据上节内容的提示,我们知道如何进行nginx的信号控制和命令行控制了。 2. 这节主要是学习nginx的静态文件相关配置,包括静态html和vue等项目工程文件

静坐听雨 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

四、Nginx优化配置

1.优化方法论 1.1 从软件层面提升硬件使用效率 -增加CPU利用率 -增大内存的利用率 -增大磁盘I/O的利用率 -增大网络带宽的利用率 1.2 直接提升硬件规格 -网卡:万兆网卡 -磁盘:固态磁盘 -CPU:更快的主频、更多核心、更大缓存、更优架构 -内存:更快访问速度 2、nginx相关优化配置-进程相关 2.1 增大nginx使用CPU的有效时长 使用全部的CPU...

Salted fish in hand, I have the world. 599

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Nginx《四》——NginxNginx 高级配置

Nginx《一》——I/O模型以及web服务介绍 Nginx《二》——Nginx基础服务介绍以及编译安装、配置 Nginx《三》——Nginx基础配置介绍 NginxNginx 高级配置 Nginx 状态⻚ 基于nginx模块ngx_http_auth_basic_module实现,在编译安装nginx的时候需要添加编译参数 –withhttp_stub_status_module,否则配置完成之...

李凯的博客 628

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Nginx配置指令(四)

31.limit_except 语法:limit_except 方法名{...} 默认值:no 功能:用于限制访问location的http方法 用于location模块内 例如: limit_except GET { allow 192.168.1.0/32; deny all; } 32.limit_rate 语法:limit_rate 速度值 默认:no 功能:用户限制传输速度。 用于http,server,location,if in location 模块 33.

bigwood99的博客 2112

Nginx(四):Nginx配置实战

相关阅读: Nginx(一):Nginx原理概述 与 安装步骤详解 Nginx(二):反向代理原理 与 配置文件详解 Nginx(三):负载均衡策略 与 Nginx静态服务器 Nginx(四):Nginx配置实战 各种开发工具的配置还是结合实战来讲述,会让人更易理解。 一、nginx.conf 反向代理配置: 我们先实现一个小目标:不考虑复杂的配置,仅仅是完成一个 htt...

张维鹏的博客 2553

Nginx 之四 nginx.conf配置文件详解

nginx配置文件nginx.conf的讲解 注意点:nginx配置文件的每一条指令都必须用分号结束 ,下面指令配置中 “|”表示或者; “[]”表示可选 目录 一.配置文件结构 二、配置文件的指令解析 1. 全局块指令配置 2.events块指令配置 3.Http块指令配置 4 Server块指令配置 5.location块指令配置 去掉注释的默认的配置文件 一.配置文件结...

Visonws的博客 1万+

(四)nginx高级配置

1.nginx状态页 基于nginx模块ngx_http_auth_module实现,需要编译安装nginx的时候添加编译参数–with-http_stub_status_modle,否则提示语法错误。 在实际工作中也会开启该状态页查看nginx当前的状态,后期也可根据脚本获取这几个的状态值,根据zabbix等监控工具进行展示。 location /nginx_status { stub_status on; #该参数需要开启 allow 192.168.142.0/24; allow 1

Spider_xiaoma的博客 350

nginx(四):如何在 Nginx 中配置以保留真实 IP 地址

当使用nginx作为反向代理服务器时,客户端的请求会经过nginx转发到后端服务器。在这过程中,客户端的IP可能会被覆盖,导致后端在获取请求的IP时只能获取到nginx所在机器的IP。

欧阳方超的专栏 3361

Nginx学习(四) Nginx Location配置

location 语法 location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上. location 的语法 location [=|~|~*|^~] patt { } 中括号可以不写任何参数,此时称为一般匹配 也可以写参数 因此,大类型可以分为3种 location = patt {} [...

文若书生的专栏 379

Nginx(四):nginx的配置文件

1. 配置文件的位置 cd /usr/local/nginx/conf 2. 配置文件的组成 nginx.conf 配置文件分为三部分: 2.1 全局块 从配置文件开始 到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令,主要包括配置运行 nginx 服务器的用户(组)、允许生成的 worker process 数,进程PID存放路径、日志存放路径和类型以及配置文件的引入等。 比如下面这个配置: worker_processes 1; 这是 nginx 服务器并

风信子 189

Nginx运维之四 Http模块参数配置

Nginx运维之四 Http模块参数配置案例核心参数配置client_body_buffer_sizeclient_body_temp_pathclient_body_timeoutclient_header_buffer_sizeclient_header_timeoutclient_max_body_sizeconnection_pool_sizedefault_typekeepalive_t...

灵动的艺术的博客 2957

Nginx系列四: Nginx的配置指令和handler模块概述

文章目录1. 指令参数2. 指令上下文3. 模块描述 nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于 nginx 安装目录下的 conf 目录下 。配置文件中以#开始的行,或者是前面有若干空格或者 TAB,然后再跟#的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的内容是被忽略的。由于除主配置文件 nginx.conf 以外的文件都是在某些情况下才使用的,而只有主配置文件是在任何情况下都被使用的。所以

Birate的博客 422
上一篇: mysql的主从复制高可用性解决方案MHA
下一篇: FastCGI示例--Nginx与php不在同个服务器
studywinwin
博客等级 码龄7年 18粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值