```bash
#!/bin/bash
# 遍历当前目录下的所有文件
for file in *.jpg; do
# 获取文件名和扩展名
filename=$(basename -- "$file")
echo "filename: $filename"
extension="${filename##*.}"
# 提取文件名中的结尾3...
如果你想限制Auto-SSL只允许最多四级域名使用,你可以在`allow_domain`的回调函数中添加逻辑来检查域名的级别。以下是一个简单的例子:
```lua
init_by_lua_block {
auto_ssl = (require "resty.auto-ssl").new()
auto_ssl:set("allow_...
1.登录VPS。
2.更新下VPS系统环境:
apt update -y && apt install -y curl socat wget sudo
3.安装 Docker:
curl -fsSL https://get.docker.com | sh
4.一键安装 Nginx Proxy Manager:
dock...
概述
本文概述CDN配置后支持手机和PC端的分别访问。
问题描述
网站是代码适配的网站(非响应式),PC端和移动端的URL是一致的,通过后端判断用户的UA来给用户推送不同前端模板。需要设置CDN对不同的UA做不同的缓存,实现手机访问网站跳转到Wap页面,PC端访问跳转到PC端的页面。比如nginx配置如下:
location /...
前言
由于要开始用nginx的tcp代理,发现最终http打印出来的IP都是最后一个代理的内网IP,这就不方便去查问题了。那就依样画葫芦吧。但是发现个问题,TCP层面哪里有header头啊。还好nginx提供了stream_realip这个模块。
1
./configure --with-http_geoip_mod...
创建Caddy Docker容器
创建并运行 run.sh
#!/bin/env bash
docker rm -f caddy
# $DOCKER_CONF是你存放caddy相关数据的映射目录
docker run -d --name caddy \
-p 8888:80 \
-p 8443:443 \...
安装luarocks
首先安装luarocks, 这是一个类似php的composer ,nodejs的npm 第三方包管理工具。
wget http://luarocks.org/releases/luarocks-2.0.13.tar.gz //下载,为了保持兼容性使用这个版本
tar -xzvf luarocks-2.0.13.tar.gz //...
限流算法
令牌桶算法
算法思想是:
令牌以固定速率产生,并缓存到令牌桶中;
令牌桶放满时,多余的令牌被丢弃;
请求要消耗等比例的令牌才能被处理;
令牌不够时,请求被缓存。
漏桶算法
算法思想是:
水(请求)从上方倒入水桶,从水桶下方流出(被处理);
来不及流出的水存在水桶中(缓冲),以固定速率流出;
水桶满后水溢出(...
Nginx从请求中获取文件名、顶级目录的方法
需要使用map和captured:
# Gets the basename of the original request
map $request_uri $request_basename {
~/(?<captured_request_basename>[^/?]*)(?:\...
因为今天公司网站的性能问题,使我再一次意识到学习nginx/openresty的必要性,我习惯的学习的方式是用于致学,因为我认为如果缺乏必要的应用场景,是很难真正"学会"一门技术的。使用的场景必须存在,否则只是屠龙之术,比如之前学习了Go语言,学完语法之后我也不知道准备拿来干嘛,写了一两个小脚本就废弃了,因为我开始学的时候就没想好用来做什么,自然没有足够的动...