常用代码 ¶
1. Docker 镜像加速配置 ¶
为了提高 Docker 镜像的拉取速度,可以配置镜像加速源。以下是推荐的镜像源列表,适用于国内环境:
{
"registry-mirrors": [
"https://docker.lfh.ee",
"https://proxy.1panel.live",
"https://docker.lfh.fan",
"https://docker.1panel.top",
"https://hub.rat.dev",
"https://docker.1panel.dev",
"https://docker.amingg.com",
"https://hub.nat.tf",
"https://hub1.nat.tf",
"https://hub2.nat.tf"
]
}
说明:将上述配置添加到 Docker 的配置文件(如 /etc/docker/daemon.json)中,然后重启 Docker 服务(systemctl restart docker),即可生效。这些镜像源可以显著提升镜像下载速度。
2. OpenResty 反向代理配置(WebSocket 优化) ¶
以下是针对 OpenResty 的反向代理配置,特别优化了 WebSocket 连接的处理,适用于需要实时通信的应用:
location ^~ / {
proxy_pass http://127.0.0.1:3080;
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_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection; # 确保 WebSocket 连接持续
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1; # WebSocket 必需使用 HTTP/1.1
# 增加超时设置,防止连接中断
proxy_connect_timeout 30s; # 连接上游服务器的超时时间
proxy_read_timeout 300s; # 等待上游响应的超时时间
proxy_send_timeout 300s; # 等待客户端发送数据的超时时间
# 缓冲区设置(可选,提升性能)
proxy_buffers 32 4k;
proxy_buffer_size 4k;
# 响应头设置
add_header X-Cache $upstream_cache_status;
add_header Cache-Control no-cache;
proxy_ssl_server_name off;
proxy_ssl_name $proxy_host;
add_header Strict-Transport-Security "max-age=31536000";
}
说明:此配置适用于需要支持 WebSocket 的场景,确保了连接的稳定性和性能。超时时间和缓冲区设置可根据实际需求调整。
3. 宝塔面板反向代理配置 ¶
以下是宝塔面板中常用的反向代理配置,适用于一般的 Web 服务转发:
location / {
proxy_pass http://127.0.0.1:8080;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
说明:此配置适用于宝塔面板的反向代理设置,确保请求正确转发到目标服务,并保留客户端的真实 IP 和协议信息。
4. Docker CLI 部署模板(以 SearxNG 为例) ¶
以下是使用 Docker CLI 部署 SearxNG 服务的两种命令模板,简洁版和详细版:
简洁版 ¶
docker run -dit --name searxng -v /root/searxng:/etc/searxng -e TZ=Asia/Shanghai -p 8180:8080 --hostname searxng --restart always searxng/searxng
详细版(指定版本) ¶
docker run -dit \
--name searxng \
-v /root/searxng:/etc/searxng \
-e TZ=Asia/Shanghai \
-p 8180:8080 \
--hostname searxng \
--restart always \
searxng/searxng:latest
说明:两种模板均可用于快速部署 SearxNG 搜索服务。详细版通过换行和缩进提高可读性,并明确指定镜像版本(latest)。映射端口为 8180:8080,配置文件目录为 /root/searxng。
5. Docker Compose 部署模板(以 SearxNG 为例) ¶
以下是使用 Docker Compose 部署 SearxNG 服务的配置文件模板:
version: '3.3'
services:
searxng:
container_name: searxng
volumes:
- '/root/searxng:/etc/searxng'
environment:
- TZ=Asia/Shanghai
ports:
- '8180:8080'
hostname: searxng
restart: always
image: searxng/searxng
说明:此模板适用于使用 Docker Compose 管理容器的情况,便于批量管理和配置。配置文件目录和端口映射与 CLI 模板一致。
6. Watchtower 自动更新容器 ¶
以下是部署 Watchtower 的命令,用于自动更新 Docker 容器镜像:
docker run -d \
--name watchtower \
--restart always \
-e TZ=Asia/Shanghai \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--cleanup \
-s "0 0 6,12,18,22 * * *"
说明:Watchtower 是一个自动更新 Docker 容器的工具。此命令设置为每天的 6:00、12:00、18:00 和 22:00 检查并更新容器镜像,--cleanup 参数会清理旧镜像以节省空间。