在路由器某个目录下创建一个nginx 的docker compose文件(使用macvlan,分配一个单独的ip 192.168.2.3,这样可以使用默认80和443端口):
version: '3.8'
services:
app:
image: 'nginx:latest'
restart: unless-stopped
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./html:/usr/share/nginx/html
networks:
macvlan:
ipv4_address: 192.168.2.3
networks:
macvlan:
external: true
name: macvlan在目录下创建nginx.conf
# 全局块
user nginx; # 指定 Nginx 工作进程运行的用户
worker_processes auto; # 指定工作进程的数量,auto 表示根据 CPU 核心数自动调整
error_log /var/log/nginx/error.log; # 指定错误日志文件的位置
pid /run/nginx.pid; # 指定 Nginx 的 PID 文件位置
# events 块
events {
worker_connections 1024; # 每个工作进程的最大连接数
# use epoll; # 指定使用的事件驱动模型,epoll 是 Linux 下的高效模型
}
# http 块
http {
include /etc/nginx/mime.types; # 包含 MIME 类型定义文件
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # 指定访问日志文件的位置和格式
sendfile on; # 开启高效文件传输模式
tcp_nopush on; # 开启 TCP_NOPUSH 选项,减少 TCP 包的数量
tcp_nodelay on; # 开启 TCP_NODELAY 选项,立即发送数据
keepalive_timeout 65; # 设置长连接的超时时间
# server 块(虚拟主机配置)
server {
listen 80; # 监听的端口
server_name localhost; # 服务器名称
# location 块(处理特定路径的请求)
location / {
root /usr/share/nginx/html; # 网站根目录
index index.html index.htm; # 默认索引文件
}
# 激活配置块
location /activecode/bind {
# 设置响应头,表明返回的是 JSON 数据
add_header Content-Type application/json;
# 返回 JSON 数据
return 200 '{
"code": 0,
"data": {
"code": "鸡仔YYDS",
"activated": true,
"orderId": "",
"activeCount": 0,
"timestamp": 32472115200000,
"s_expire": false
}
}';
}
# 错误页面配置
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}执行docker compose up -d,然后把路由器中的api.yuhengye.com 重定向到 192.168.2.3,即可在手机上输入任意验证码激活成功!