File size: 1,445 Bytes
1ed6f05
34345fc
 
 
 
 
 
 
 
 
 
 
 
ff7a8aa
 
34345fc
 
 
 
5d883d9
 
 
 
fa06416
 
7434cd7
14c6a65
f5f0528
969126a
 
 
f5f0528
433498f
 
a2f4af1
b904c08
08eb0cd
9d27e34
 
 
 
fa06416
30963bd
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 目前已经实现静态的gemini代理,下面需要使用lua实现动态替换 备份时间为 2025-02-26 00:03
worker_processes auto;
events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    lua_package_path '$prefix/lua/?.lua;$prefix/lualib/?.lua;;';

    server {
        listen       7860;
        server_name  localhost;

        set $target_proto "";
        set $target_host "";
        set $target_path "";

        # 主代理路径处理
        location ~ ^/v1/(https?)/([^/]+)(/.*)$ {
            resolver 8.8.8.8;  # 指定一个公共 DNS 解析器
            access_by_lua_block {
                -- 设置目标变量
                ngx.var.target_proto = ngx.var[1]
                ngx.var.target_host = ngx.var[2]
                ngx.var.target_path = ngx.var[3]

                -- 处理特殊字符转义(如路径中的%2F)
                ngx.var.target_path = ngx.re.gsub(ngx.var.target_path, "\\%2F", "/", "ijo")
            }
            proxy_pass $target_proto://$target_host$target_path;
            proxy_set_header Host $target_host;
            # 设置其他常用的请求头
            proxy_set_header X-Real-IP $remote_addr;
            # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}