Notes
  • 简介
  • Linux
    • Ubuntu
      • Ubuntu 20.04 ARM64 修改PAGE_SIZE 64k
    • Samba
      • CentOS7安装Samba
      • 简单案例
      • 审计
      • 相关命令
    • Systemd
    • FPM 打包 nginx rpm 包
    • rpm 打包-从二进制文件进行打包
    • Centos7 重置密码
    • CentOS7搭建kvm并创建虚拟机
    • CentOS7-KVM 嵌套虚拟化
    • CentOS7 KVM GPU 穿透
    • Bonding
    • CentOS7 发送邮件
    • CentOS7 安装 OpenVPN
    • Linux 多线路由策略
    • Webmin 安装
    • NoVNC 安装
    • SRS-RTMP 服务部署
    • CentOS7 安装 MongoDB
    • confluence 安装
    • jira 安装
    • crowd 安装
    • ScriptRunner For Jira
    • ScriptRunner For Confluence
    • Ubuntu VNC
    • Ubuntu18.04-VNC 安装
    • deb 打包
    • iptables
    • debian 保持软件包一致
    • Ubuntu18.04 编译安装 grpc
    • CentOS7 安装 odoo13
    • Pacemaker 入门
    • Firewalld Rich Language
    • PHP Xdebug
    • CentOS7.3 编译安装 Python3.6
    • 葫芦儿打包
    • CentOS7 安装 Tomcat8
    • CentOS7 安装 JDK
    • GuacamoleServer 编译安装
    • FreeBSD7.0安装AMP
    • CentOS7 换源
    • deb下载并离线安装
    • pip下载并离线安装
  • Network
    • 案例一
  • AI
    • 微调Qwen2.5
    • Qwen2.5 VL AWQ量化
    • qwen2.5 填充权重
  • JavaScript
  • Zabbix
    • CentOS7 安装 Zabbix4.0 LTS
    • Zabbix 加密连接
    • Zabbix 主动和被动模式
    • Zabbix 配置邮件报警
    • Zabbix 监控 MySQL
  • 数据库
    • MySQL
      • CentOS7 Install MySQL5.7
      • MySql 主从配置
      • CentOS7 安装 Percona XtraDB Cluster
      • MySql 压力测试-sysbench
      • MariaDB Galera Cluster
      • 备份脚本
    • MongoDB
      • 启用账号密码登录
      • 备份脚本
  • Nginx
    • CentOS7 安装 Nginx
    • Nginx 配置
    • nginx-http-flv-module
    • Nginx-WebDAV
  • Docker
    • CentOS7 安装 Docker
    • Dockerfile
    • DockerSwarm 集群
    • Docker 安装 guacamole
  • Python
    • 虚拟环境
  • Windows
    • Windows 问题集合
    • 迅雷自动安装 Chrome 插件
    • RDP 注册表
    • Rdp File Setting
    • 本地组策略对象(LGPO)工具
    • 禁用应用联网
    • SQL Server 问题处理
    • SQL Server Trigger
    • NSIS 脚本
    • 使用QEMU运行ARM64 CentOS7
    • DOS 脚本
    • Windows 11 设置旧版右键菜单
    • 远程桌面二次验证
  • Apple
    • AppStore 应用开发及上架
    • Apple 打包 Golang WebDav 制作 pkg 安装包
  • Android
    • Android Studio创建具有root权限的虚拟机
    • Android读写挂载system
    • Android安卓CA至系统
  • 证书
    • 证书名称(主题)
    • 证书扩展
    • SSL 自签
    • 免费 https 证书申请
  • 树莓派
    • 树莓派系统烧录及系统打包制作
    • 树莓派基础操作
    • 树莓派安装 NextCloud
    • 树莓派安装 LNMP
    • 树莓派自定义开机界面和登录提示
    • 树莓派安装 HomeAssistant
    • HomeAssistant 配置
    • 树莓派自动挂载 U 盘
    • 树莓派安装 vsftpd
    • vsftpd 配置文件详解
  • ceph
    • ceph-deploy 部署 ceph nautilus 版本
    • ceph dashboard
  • OpenStack
    • OpenStack VM 配置 Virtual IP
    • OpenStack Glance 对接 Ceph RBD 存储
    • OpenStack Cinder Volumes 对接 Ceph RBD 存储
    • OpenStack 集群搭建
    • OpenStack Rocky 单节点部署
    • OpenStack Rocky 集群部署
    • OpenStack CentOS6 镜像制作
    • OpenStack-Ubuntu 镜像制作
    • Openstack-Windows 镜像制作
    • OpenStack-RBD 导入镜像
    • OpenStack-Rocky 灾备
    • rbd-mirror
  • FFmpeg
    • CentOS7 静态编译FFmpeg
    • MacOS10.12静态编译FFmpeg
    • CentOS7 Arm64静态编译FFmpeg
    • 使用NVIDIA显卡
    • 脚本
  • Other
    • 华为一碰传标签制作
    • 常用软件
    • wireguard
由 GitBook 提供支持
在本页
  • 静态服务器
  • 反向代理
  • 负载均衡
  • 算法
  • SSL
  • PHP-FPM
  • 缓存
  • 正则规则
  1. Nginx

Nginx 配置

静态服务器

server {
  listen 80;
  server_name b.test.com;
  root /data/www/test/;
  index index.html index.htm;

}

反向代理

server {
  listen 80;
  server_name b.test.com;

  location / {
    proxy_set_header  Host  $host;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass http://10.0.100.63;
  }
}
  • Host:客户端访问的主机地址

  • X-Real-IP:用于记录真实客户端 IP(发送请求的真实 IP,多级代理,即上一级代理)

  • X-Forwarded-For:是用于记录代理信息,每经过一级代理(匿名代理除外)的 IP

格式:client, proxy1, proxy2

负载均衡

upstream test {
  server 192.168.2.10:8000 weight=5;
  server 192.168.2.11:8000 weight=5 max_conns=800;
  server 192.168.2.12:8000 weight=5 max_fails=1  fail_timeout=30s;
}
  • weight:权重,值越大,访问的比例越大

  • max_conns:最大连接数

  • max_fails:最大失败次数,与fail_timeout配合使用

  • fail_timeout:失败检测周期,例:30s 内失败 1 次,将 server 标记为 down,等待 30s 不接受请求,30s 再接收请求进行检测

  • down:表示单前的 server 暂时不参与负载

  • backup:备用 server,其它 server 繁忙或者 down 时,请求此 server

算法

  • 轮询(默认)

    1:1 处理请求

    upstream test {
      server 192.168.2.10:8000;
      server 192.168.2.11:8000;
    }
  • 权重

    根据权重值比例处理请求,值越大,请求比例越大

    upstream test {
      server 192.168.2.10:8000 weight=1;
      server 192.168.2.11:8000 weight=2;
    }
  • ip_哈希算法

    每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个应用服务器,可以解决 session 共享的问题。

    upstream test {
      ip_hash;
      server 192.168.2.10:8000;
      server 192.168.2.11:8000;
    }
  • least_conn 最小连接

    比较每个后端的 conns/weight,选取该值最小的后端。

  • least_time 最小响应时间

SSL

server {
  listen 443;
  server_name b.test.com;
  ssl on;
  root /data/www/test/;
  index index.html index.htm;
  ssl_certificate   /etc/nginx/ssl/server.crt;
  ssl_certificate_key  /etc/nginx/ssl/server.key;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;

}

# 配置http跳转https
server {
  listen 80;
  server_name b.test.com;
  rewrite ^(.*)$ https://$host$1 permanent;
}

PHP-FPM

server {
  listen       80 default_server;
  server_name  _;
  root         /data/www/demo;
  index        index.html index.htm index.php;
  location ~ \.php$ {
      try_files $uri =404;
      fastcgi_intercept_errors on;
      fastcgi_index  index.php;
      include        fastcgi_params;
      fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
      fastcgi_pass   127.0.0.1:9000;
  }
}

缓存

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
  expires 30d;
  access_log off;
}

location ~ .*\.(js|css)?$ {
  expires 12h;
  access_log off;
}

正则规则

  • =:精确配置

  • ~:区分大小写匹配

  • ~*:不区分大小写匹配

  • ^:匹配字符串的开始位置

  • $:匹配字符串的结束位置

  • .:匹配除换行符以外的任意字符

  • [a-z]:匹配 a~z 的任意单个字母

  • \d:匹配数字

  • \w:匹配字母、数字、下划线、汉字

  • \s:匹配任意的空白符

  • (png|jpg|bmp):匹配 png 或 jpg 或 bmp

  • *:重复 0 次或多次

  • ?:重复 0 次或 1 次

  • +:重复 1 次以上

  • {n,m}:重复 n~m 次

上一页CentOS7 安装 Nginx下一页nginx-http-flv-module

最后更新于3年前