castopod/web-server本镜像为Castopod播客平台设计,提供预配置的Nginx环境,旨在简化Castopod的Docker部署。通过集成针对Castopod优化的Web服务器配置,实现媒体文件托管、请求路由、HTTPS支持及安全加固,确保Castopod平台稳定高效运行。
适用于采用Docker部署Castopod的用户,包括:
castopod/app)已部署且网络互通bashdocker pull castopod/nginx:latest
bashdocker run -d \ --name castopod-nginx \ --network castopod-net \ # 与Castopod应用容器共享网络 -p 80:80 \ -p 443:443 \ -v /path/to/ssl:/etc/nginx/ssl:ro \ # 挂载SSL证书(可选) -v castopod-media:/var/www/castopod/public/media \ # 媒体文件持久化卷 -e SERVER_NAME=podcast.example.com \ # 自定义域名 -e PHP_FPM_HOST=castopod-app \ # Castopod应用容器名称 -e ENABLE_HTTPS=true \ # 启用HTTPS(需确保ssl目录存在证书) castopod/nginx:latest
推荐与Castopod应用容器联动部署:
yamlversion: '3.8' services: nginx: image: castopod/nginx:latest container_name: castopod-nginx ports: - "80:80" - "443:443" volumes: - ./ssl:/etc/nginx/ssl:ro # SSL证书目录(cert.pem和key.pem) - castopod-media:/var/www/castopod/public/media environment: - SERVER_NAME=podcast.example.com - PHP_FPM_HOST=app - PHP_FPM_PORT=9000 - ENABLE_HTTPS=true - CACHE_MAX_AGE=31536000 # 静态资源缓存1年 depends_on: - app networks: - castopod-net app: image: castopod/app:latest # Castopod应用容器配置(参考Castopod官方文档) networks: - castopod-net volumes: castopod-media: # 媒体文件持久化卷 networks: castopod-net:
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
SERVER_NAME | Nginx虚拟主机域名,用于server_name指令 | localhost |
PHP_FPM_HOST | Castopod PHP-FPM服务地址(通常为应用容器名) | app |
PHP_FPM_PORT | PHP-FPM监听端口 | 9000 |
ENABLE_HTTPS | 是否启用HTTPS(true/false),启用需挂载证书 | false |
MEDIA_PATH | 媒体文件在容器内的存储路径 | /var/www/castopod/public/media |
CACHE_MAX_AGE | 静态资源浏览器缓存时间(秒) | 31536000(1年) |
LOG_LEVEL | Nginx日志级别(debug/info/warn/error/crit) | warn |
如需修改Nginx规则,可挂载自定义配置文件覆盖默认设置:
bashdocker run -d \ # 其他参数省略 -v ./custom-castopod.conf:/etc/nginx/conf.d/castopod.conf \ # 自定义配置文件 castopod/nginx:latest
docker restart castopod-nginxmanifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务