nginx配置(五)

五、Nginx 配置文件压缩 在 Web 开发中,压缩是一种常用的优化手段,可以减少传输的数据量,从而提高网站的加载速度。Nginx 是一款高性能的 Web 服务器,它支持多种压缩算法,如 Gzip 和 Brotli。在本文中,我们将介绍如何在 Nginx 配置文件中启用压缩功能。 阅读详情

ngx_http_fastcgi_module

fastcgi_cache_path

  1. path 缓存位置为磁盘上的文件系统路径
  2. levels=levels 缓存目录的层级数量,以及每一级的目录数量
    示例:leves=1:2:2
  3. keys_zone=name:size
    k/v映射的内存空间的名称及大小
  4. inactive=time 非活动时长
  5. fastcgi_cache zone|off;
    调用指定的缓存空间来缓存数据,可用位置:http、server、location
  6. fastcgi_cache_key string;
    定义用作缓存项的key的字符串
    示例:fastcgi_cache_key $request_uri;
  7. fastcgi_cache_methods GET|HEAD|POST …;
    为哪些请求方法使用缓存
  8. fastcgi_cahce_min_users numbers;
    缓存项在inactive定义的非活动时间内至少要被访问到指定的次数方可被认作活动项
  9. fastcgi_keep_conn on|off;
    收到后端服务器响应后,fastcgi服务器是否关闭连接,建议启用长连接
  10. fastcgi_cache_valid [code …] time;
    不同的响应码各自的缓存时长
  11. 示例:
http {
 	fastcgi_cache_path /var/cache/nginx/fcgi_cache levels=1:2:1 keys_zone=fcgicache:20m inactive=120s max_size=1g;
}

server {
    listen 80;
    server_name www.fastcgi-cache.com;
    root /data/fastcgi-cache/;
    index index.php index.html;
    location ~*\.php$ {
            root /data/php/;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fastcgi_param SCRIPT_FILENAME /data/php$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
            fastcgi_cache fcgicache;
            fastcgi_cache_key $request_uri;
            fastcgi_cache_valid 200 302 10m;
            fastcgi_cache_valid 301 1h;
            fastcgi_cache_valid any 1m;
            add_header X-Cache $upstream_cache_status;
    }
}

ngx_http_upstream_module

  1. ngx_http_upstream_module模块
    将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用

  2. upstream name { … }
    定义后端服务器组,会引入一个新的上下文
    默认调度算法是wrr
    Context: http
    upstream httpdsrvs {
    server …
    server…
    …
    }

  3. 示例

// 定义在 http 语句块中
    upstream websrvs {
        server 192.168.43.27:80 weight=3 down; // 灰度发布
        server 192.168.43.37:80 weight=2;
    }
  // 在虚拟主机中定义
   location / {
        proxy_pass http://websrvs;
    }

注意:
upstream web_srvs {} 不要用 web_srvs,客户端访问不支持,应该用下面这种方式
upstream websrvs {}

  1. server address [parameters];

    address的表示格式:

    1. unix:/PATH/TO/SOME_SOCK_FILE
    2. IP[:PORT]
    3. HOSTNAME[:PORT]

    parameters:

    1. weight=number 权重,默认为1
    2. max_conns 连接后端报务器最大并发活动连接数,1.11.5后支持
    3. max_fails=number 失败尝试最大次数;超出此处指定的次数时,server将被标记为不可用,默认为1
    4. fail_timeout=time 后端服务器标记为不可用状态的连接超时时长,默认10s
    5. backup 将服务器标记为“备用”,即所有服务器均不可用时才启用
    6. down 标记为“不可用”,实现灰度发布
  2. nginx的调度算法

    1. ip_hash 源地址 hash 调度方法
    2. least_conn 最少连接调度算法,当server拥有不同的权重时其为wlc,当所有后端主机连接数相同时,则使用wrr,适用于长连接
    3. hash key [consistent] 基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者组合
      作用:将请求分类,同一类请求将发往同一个upstream server,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用
      hash $request_uri consistent; 相当于 lvs 中的 dh算法
      hash $remote_addr; 相当于 ip_hash
      hash $cookie_ name ; #key为 name 的cookie

示例:

upstream webservs {
        server 192.168.43.17:80 weight=3 ;
        server 192.168.43.37:80 weight=2;
        server 127.0.0.1:8080 backup;
        #ip_hash;
        #least_conn;
        #hash $remote_addr;
        #hash $request_uri;
        #hash $cookie_sessionid; // 同一cookie 调度到同一台服务器上,根据带有的sessionid的不同来区分客户端
        hash $cookie_sessionid;
        }

 curl -b sessionid=123456 http://www.fastcgi.com  // 指定 cookie来进行测试

keepalive 连接数N;
为每个worker进程保留的空闲的长连接数量,可节约nginx端口,并减少连接管理的消耗

一致性hash算法
hash key consistent;

在这里插入图片描述
如果有一台 varnish 挂了或再增加一台varnish,则这个算法又得重新计算,付出的代价太大了,于是有了下面的算法:一致性 hash 算法
在这里插入图片描述

ngx_stream_core_module

ngx_stream_core_module模块
模拟反代基于tcp或udp的服务连接,即工作于传输层的反代或调度器

  1. listen
    listen address:port [ssl] [udp] [proxy_protocol] [backlog=number] [bind][ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

ngx_stream_proxy_module

ngx_stream_proxy_module模块可实现代理基于TCP,UDP (1.9.13), UNIX-domain sockets的数据流

  1. proxy_pass address; 指定后端服务器地址
  2. proxy_timeout timeout;
    无数据传输时,保持连接状态的超时时长,默认为10m
  3. proxy_connect_timeout time;
    设置nginx与被代理的服务器尝试建立连接的超时时长,默认为60s
  4. 示例:
    在这里插入图片描述
    proxy
// main语句块中
stream {
    upstream mariadbsrvs {
        server 192.168.43.27:3306;
        server 192.168.43.37:3306;
    }
    server {
        listen 192.168.43.7:3306;
        proxy_pass mariadbsrvs;
        proxy_timeout 60s;
        proxy_connect_timeout 10s;
    }
}

mariadb1

mysql -e "create database if not exsits db27;grant all on db27.* to test@'192.168.43.7' identified by 'test';flush privileges;"

mariadb2

mysql -e "create database if not exists db37;grant all on db37.* to test@'192.168.43.7' identified by 'test';flush privileges;"

client

while :;do mysql -utest -ptest -h 192.168.43.7 -e "show databases;";sleep 1;done

在这里插入图片描述
proxy

stream {

    upstream redissrvs {
        server 192.168.43.27:6379;
        server 192.168.43.37:6379;
    }
    server {
        listen 192.168.43.7:6379;
        proxy_pass redissrvs;
    }

}

redis1

yum --enablerepo=epel install redis -y
vim /etc/redis.conf
	bind 192.168.43.27
systemctl start redis

redis-cli -h 192.168.43.27
192.168.43.27:6379> set name peng
192.168.43.27:6379> exit

redis2

yum --enablerepo=epel install redis -y
vim /etc/redis.conf
	bind 192.168.43.37
systemctl start redis

redis-cli -h 192.168.43.37
192.168.43.27:6379> set name xue
192.168.43.27:6379> exit

client

yum --enablerepo=epel install redis -y
while :;do redis-cli -h 192.168.43.7 get name;sleep 1;done

源码编译安装 tengine-2.1.2

tar xvf tengine-2.1.2.tar.gz
yum install pcre-devel openssl-devel zlib-devel gcc -y
cd tengine-2.1.2/
./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_concat_module=shared
make dso_install  // 安装动态模块
ls /apps/nginx/modules/ // 查看动态模块
ls /apps/nginx/modules/ngx_http_concat_module.so

vim /apps/nginx/conf/nginx.conf    // 配置文件中指定加载动态模块
	dso {
        load ngx_http_concat_module.so;
	}
ln -s /apps/nginx/sbin/nginx /usr/sbin/tengine
tengine
五、Nginx配置实例-高可用 1.什么是Nginx高可用 (1)需要两台Nginx服务器 (2)需要keepalived (3)需要虚拟ip 2.配置高可用的准备工作 (1)需要两台服务器192.168.17.129和192.168.17.131 (2)在两台服务器安装Nginx (3)在两台服务器安装keepalived 3.在两台服务器安装keepalived ... 阅读详情

相关推荐

Java Nginx:(五)Nginx 中配置服务的反向代理

Nginx 中配置服务的反向代理1.需求2.安装 tomcat3.配置 tomcat4.配置 Nginx 实现服务的反向代理5.在反向代理中配置负载均衡1.什么是负载均衡2.Nginx 负载均衡策略3.需求4.Nginx 的集群配置 1.需求 安装两个 tomcat 服务,通过 nginx 反向代理。 本案例中使用两台虚拟机演示。 tomcat 安装到 192.168.70.143 环境中。端口为 8080 与 9090 Nginx 安装在 192.168.70.144 环境中 2.安装 tomcat

地球村 1161

Nginx使用教程(六):使用Nginx缓存之FastCGI缓存

启用FastCGI缓存 <br\>编辑必须启用缓存的虚拟主机配置文件。 nano /etc/nginx/sites-enabled/vhost 将以下行添加到server{}指令之外的文件顶部: fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=MYAPP:100m inactive=60m; fastcgi_ca...

weixin_33795743的博客 197

基于Open Cluster Management构建企业级多Kubernetes集群管理平台OpenClaw

在云原生架构中,Kubernetes已成为容器编排的事实标准。随着业务规模扩大,企业往往需要管理分布在多个云环境或数据中心的Kubernetes集群,这带来了集群管理、应用分发、策略统一和监控运维等复杂挑战。多集群管理技术通过提供统一控制平面,实现了对分布式资源的集中管控,其核心价值在于提升运维效率、保障安全合规并降低管理成本。Open Cluster Management(OCM)作为CNCF沙箱项目,采用Kubernetes原生架构,通过自定义资源定义(CRD)和控制器模式,为构建多集群管理平台提供了标

weixin_33747129的博客 368

【Nginx20】Nginx学习:FastCGI模块(二)缓存配置

Nginx学习:FastCGI模块(二)缓存配置通过上篇文章的学习,普通的 PHP 与 Nginx 的连接就已经没啥大问题了。一般的网站直接那套配置就够了,这也是 Nginx 非常友好的一面。很多在默认的配置文件中注释掉的内容,只要打开就是可以直接使用的。不过,FastCGI 可不是一个小模块,还有很多的配置指令,要想深入,要想调优,这些指令还是多少要了解一下的。今天学习的内容基本上也都是可以设置...

硬核项目经理 1428

基于JavaFX的Http Server模拟器

源码地址 GitHub - DayRain/http-server-simulator: http server 模拟器 功能描述 HttpServer模拟器,通过简单的配置即可模拟第三方服务端,用于接收和响应HTTP请求。 支持同时模拟多个服务、动态添加接口、动态配置返回值。 使用说明 运行 exe运行 编译代码后,点击exe直接运行 代码运行 下载好代码后,运行主类ApplicationStarter即可 新建服务 主界面如下 点击 文件-新建 创建新的服务 ...

小楼夜听雨的博客 2534

紫光同创PGL50H开发板实战:盘古50KN网口板的高速通信与数据处理

本文详细介绍了紫光同创PGL50H开发板(盘古50KN网口板)在高速通信与数据处理领域的实战应用。文章从开箱、核心芯片解析、开发环境搭建入手,重点讲解了如何配置与测试其8路千兆以太网接口和SFP光纤接口,并深入探讨了FPGA与DDR3协同进行多路数据汇聚处理的系统架构与调试方法,为网络通信与高速数据处理系统开发提供了宝贵的实践经验。

weixin_28256233的博客 452

Nginx 之fastcgi常用配置项说明

在LNMP环境中,我们都知道nginx如果要解析php脚本语言,就必须通过配置fastcgi模块来提供对php支持,那么在配置fastcgi的时候,关于fastcgi配置项的值应该怎么设置才能让其发挥出更出色的性能呢,下面就讲讲关于nginx模块中fastcgi这部分通用参数介绍 1.1 fastcgi_connect_timeout 配置语法: fastcgi_connect_timeout...

牛奔的博客 8888

图解ADAS电源系统架构:看懂这张图,搞懂前装摄像头的供电秘密!

别以为ADAS系统就是“摄像头 + SoC”,其实最难搞的是供电系统,尤其是要满足车规级ASIL-D安全等级时。供电时序、电压稳定性、电源监控、冗余通信链路,一个都不能少。😤一旦电源选型不对,轻则系统卡顿,重则全车失控,不是闹着玩的。

weixin_43199439的博客 672

宝塔面板开启Nginx缓存为网站提速

Nginx默认自带的模块能把动态页面缓存起来,提高网站速度和降低服务器负载。当有用户请求相同的页面时,Nginx可以直接返回缓存的页面,而不需要再次访问后端服务器。这个模块可以通过简单的配置实现,还支持缓存伪静态!效果比起传统的php缓存好得太多了.

u010066597的博客 4183

【GitHub项目实战】OpenAvatarChat 搭建实时交互数字人

OpenAvatarChat 项目构建了一个集成语音识别、大语言模型、语音合成、表情驱动和实时通信于一体的虚拟人系统,具备本地优先、模块解耦、快速部署的特点。系统通过配置文件统一管理组件,支持多种组合方案,适用于低资源设备和私有化部署场景。配置逻辑清晰、模块职责明确,能快速启动并实现端到端语音交互流程,为多模态系统学习与实践提供了结构完整的工程参考。

Mr数据杨 2750

Google Earth Engine 红树林制图方法的代码(三个模块)

谷歌地球引擎红树林制图方法(GEM)提供了一种直观、易用且可复制的工具,适用于广泛的非专业沿海管理者和决策者。该工具全面回顾并整合了相关的红树林遥感文献,并利用云计算的力量,包括简化的基于图像的潮汐校准方法。GEM 可免费用于非营利用途,并在 GEE 中运行,包含全面且详细注释的代码。GEM 专门设计用于绘制全球范围内多日期红树林分布并量化其动态变化。目前可用的工具和方法未能充分利用沿海管理者通常持有的丰富地方专业知识——GEM 致力于填补这一空白,帮助结合地方专业知识与 GEE 的云计算能力。

此星光明博客 559

Nginx 之 fastcgi 常用参数详解

指nginx需要用多大的缓冲区缓冲fastcgi的应答请求(整个应答),如果一个php脚本所产生的页面大小为256kb,那么会分配4个64kb缓冲区来缓存,如果页面大于256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘, 所以这个值应该为站点中php所产生的页面大小的中间值, 如果站点大部分php脚本产生的页面为:256kb, 那么可以设置成成"8 16k 4 64k"。这样的话很浪费资源,于是,出现了 cgi 的改良版本,

weixin_43844718的博客 9328

AI问数,智慧赋能:基于大语言模型的数据播报员应用实践探索

AI问数技术正在改变企业与数据交互的方式,它以自然语言为桥梁,让数据不再是少数专家的专利,而是成为所有业务人员的决策伙伴。这不仅是技术的创新,更是管理理念的革新。在数字化转型的关键阶段,企业应积极拥抱AI问数技术,通过降低数据使用门槛、提升数据利用效率、释放数据潜在价值,实现真正的数据驱动决策,为企业的高质量发展注入源源不断的智慧动能。AI问数,正在开启一个数据普惠的新时代。

getusushu的博客 64

五、Nginx|Tomcat 配置 https

一、Nginx 配置 https 二、Tomcat 配置 https 三、阿里云 SSL证书申请 四、东方通 配置 https

梦想成真 4977

2.1 直流无刷电机(BLDC):机械结构与组件

本文详细解析了直流无刷电机(BLDC)的机械结构与核心组件。BLDC电机通过电子换向取代传统机械电刷,主要包含定子、转子、位置传感器和电子换向器四大组件。定子采用硅钢片叠压结构,配有三相绕组;转子采用永磁体材料,结构设计影响转矩特性;位置传感器(霍尔、编码器、旋转变压器)实现精准换向;电子换向器通过功率逆变拓扑完成电流控制。文章还对比了不同绕组类型、永磁材料及传感器技术的性能特点,为BLDC电机的设计与应用提供了理论基础。

技术工作者 388

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Nginx《五》——NginxNginx 高级配置

Nginx《一》——I/O模型以及web服务介绍 Nginx《二》——Nginx基础服务介绍以及编译安装、配置 Nginx《三》——Nginx基础配置介绍 Nginx《四》——NginxNginx 高级配置 Nginx Rewrite相关功能 Nginx服务器利用ngx_http_rewrite_module 模块解析和处理rewrite请求,此功能依靠 PCRE(perl compatible ...

李凯的博客 1250

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Nginx】五、高可用配置

文章目录1、 什么是Nginx高可用2 、配置高可用的准备工作3 、在两台服务器安装 keepalived4 、完成高可用配置(主从配置)5 、最终测试6、Nginx原理 1、 什么是Nginx高可用 (1 )需要两台 nginx 服务器 (2 )需要 keepalived (3 )需要虚拟 ip 2 、配置高可用的准备工作 (1 )需要两台服务器 192.168.17.129 和 192....

Java 369

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

五、Nginx配置文件-server模块

虚拟主机,就是把一台物理服务器划分成多个 “虚拟” 的服务器,这样我们的一台物理服务器就可以当做多个服务器来使用,从而可以配置多个网站。Nginx 提供虚拟主机的功能,就是为了让我们不需要安装多个 Nginx,就可以运行多个域名不同的网站。或者虚拟主机技术是将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。Nginx 下,一个 server 标签就是一个虚拟主机。

爱吃西红柿的博客 5672

五 NGINX 配置

目录:/www/lnmp/nginx 配置文件:/www/lnmp/nginx/conf/nginx.conf 常用操作命令: 启动:/www/lnmp/nginx/sbin/nginx 停止:/www/lnmp/nginx/sbin/nginx-sstop 重启:/www/lnmp/nginx/sbin/nginx-sreload 测试:/www...

weixin_33827731的博客 90

NGINX_五 nginx安装部署和配置管理

Nginx版本类型Mainline version: 主线版,即开发版Stable version: 最新稳定版,生产环境上建议使用的版本Legacy versions: 遗留的老版本的稳定版。

bozuris的博客 465

Nginx 面试分享(五):Nginx 基础配置实例

前面我们已经对 Nginx 服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台 Nginx 服务器正常工作,并且提供基本的 Web 服务器功能。 接下来我们将通过一个比较完整和最简单的基础配置实例,来巩固下前面所学习的指令及其配置。

之乎者也·的博客 996

Nginx配置指令(五)

41.Open_file_cache_errors 语法:Open_file_cache_errors on|off 默认:Open_file_cache_errors off 功能:开启或禁用缓存文件错误。 用于http,server,location模块 42.open_file_cache_min_uses 语法:open_file_cache_min_uses 数字 默认:open_file_cache_min_uses 1 功能:在指定的时间内一个文件被访问的最少次数。当访问.

bigwood99的博客 1400

NGINX(五)Nginx 核心配置语法与模块机制

Nginx 的访问日志格式可通过log_formathttp {# 定义日志格式(名称为main,包含客户端IP、请求时间、请求路径、状态码等)# 所有网站的访问日志都使用main格式# 单个网站可单独定义日志(覆盖全局配置)server {listen 80;# 该网站的访问日志单独存储可清晰看到客户端IP、请求时间、路径、状态码、耗时等信息,便于问题排查。set $变量名 变量值;当内置变量无法满足需求时,可通过set指令定义自定义变量,变量值支持静态字符串或内置变量拼接。

这里是数字化与人工智能的 “实验场” 与 “瞭望台” 1365

nginx(五)nginx配置高可用集群

目录1. Keepalived+Nginx 高可用集群(主从模式)2. 配置高可用的准备工作3. 在两台服务器上安装keepalived4. 完成高可用配置(主从配置)5. 最终测试 1. Keepalived+Nginx 高可用集群(主从模式) 2. 配置高可用的准备工作 需要两台服务器 需要keepalived 需要虚拟ip 3. 在两台服务器上安装keepalived 使用yum命令安装 yum install keepalived-v 安装完成之后,在etc里面生成keepalive

LeslieGuGu的博客 589

FastFDS(五) FastDFS 配置 Nginx 模块

1、安装配置Nginx模块 ① fastdfs-nginx-module 模块说明   FastDFS 通过 Tracker 服务器,将文件放在 Storage 服务器存储, 但是同组存储服务器之间需要进行文件复制, 有同步延迟的问题。   假设 Tracker 服务器将文件上传到了 192.168.51.128,上传成功后文件 ID已经返回给客户端。   此时 FastDFS 存储集群机制会将这个文件同步到同组存储 192.168.51.129,在文件还没有复制完成的情况下,客户端如果用这个文件

ForestCat的专栏 812

nginx 系列五 Nginx访问日志的配置

ginx访问日志(access_log)介绍   Nginx会把每个用户访问往咱的日志信息记录到指定的日志文件里,供网站管理员分析用户浏览行为等,此功能又 ngx_http_log_module 模块负责。访问日志参数    Nginx访问日志主要有两个参数控制log_format  #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log  #用来指定日至文件的路径及...

yz18931904的博客 631
上一篇: FastCGI示例--Nginx与php不在同个服务器
下一篇: keepalived实现nginx反向代理的高可用
studywinwin
博客等级 码龄7年 18粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值