
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像为定制化Nginx服务器镜像,预配置SSL支持及includes目录,旨在简化开发环境中的HTTPS代理部署。镜像包含默认SSL证书路径、预定义的includes配置片段,支持通过环境变量动态配置服务器名称,适用于需要连接后端服务(如Varnish缓存、PHP-FPM应用服务器)的场景。
/etc/ssl/phpro,包含通配符证书star_phpro_local.pem及密钥star_phpro_local.key,支持*.phpro.local域名AES256+EECDH:AES256+EDH:!aNULL/etc/nginx/includes,可存放通用配置片段并通过include指令引用${SERVER_NAME}环境变量设置服务器名称client_max_body_size(默认512M或108M,可调整)proxy_buffer_size、proxy_buffers等)示例1:基础SSL代理配置(ssl-proxy.template)
适用于直接代理至Varnish缓存服务的场景:
nginxserver { listen 443 ssl http2; server_name ${SERVER_NAME}; ssl_certificate /etc/ssl/phpro/star_phpro_local.pem; ssl_certificate_key /etc/ssl/phpro/star_phpro_local.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; client_max_body_size 512M; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { proxy_pass http://varnish:6081; proxy_set_header Host ${SERVER_NAME}; proxy_set_header X-Forwarded-Proto https; proxy_read_timeout 600; proxy_connect_timeout 600; proxy_redirect off; proxy_set_header X-VerifiedViaNginx yes; proxy_set_header Proxy ""; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; } }
示例2:使用includes的配置
通过includes目录引用通用配置片段,简化server配置:
nginxserver { listen 443 ssl http2; server_name ${SERVER_NAME}; ssl_certificate /etc/ssl/phpro/star_phpro_local.pem; ssl_certificate_key /etc/ssl/phpro/star_phpro_local.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; client_max_body_size 108M; access_log /var/log/nginx/access.log; include /etc/nginx/includes/${NGINX_FILE}.nginx.conf; }
/etc/nginx/includes目录下的配置片段示例(如app.nginx.conf),包含应用服务器代理、静态文件处理等通用配置:
nginxroot /app/web; location / { # 尝试直接提供文件,否则转发至index.php try_files $uri /app.php$is_args$args; } # 可选:禁用资产目录回退到PHP脚本(提升性能,但不显示Symfony 404页面) # location /bundles { # try_files $uri =404; # } location ~ ^/app\.php(/|$) { fastcgi_pass application:9000; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; # 当使用符号链接将文档根目录链接到应用的当前版本时,应将实际应用路径传递给PHP-FPM # 否则PHP OPcache可能无法正确检测PHP文件的更改 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; fastcgi_param DOCUMENT_ROOT $realpath_root; # 阻止包含前端控制器的URI访问(如http://domain.tld/index.php/some-path将返回404) # 移除internal指令可允许此类URI internal; } # 对所有不匹配前端控制器的PHP文件返回404,防止访问不需要公开的PHP文件 location ~ \.php$ { return 404; } gzip on; gzip_disable "msie6"; gzip_comp_level 6; gzip_min_length 1100; gzip_buffers 16 8k; gzip_proxied any; gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss image/svg+xml; gzip_vary on;
通过docker-compose部署,挂载自定义配置模板,设置环境变量并生成Nginx配置:
yamlversion: '3' services: nginx: image: docphpro/nginx:1.18.0 container_name: edmac-nginx-proxy volumes: # 挂载自定义Nginx配置模板至容器 - ./sysadmin/docker/nginx/ssl-proxy.template:/etc/nginx/conf.d/ssl-proxy.template:ro environment: # 设置服务器名称(需匹配通配符证书域名,如edmac.phpro.local) - SERVER_NAME=edmac.phpro.local # 生成Nginx配置并启动服务 command: /bin/sh -c "envsubst < /etc/nginx/conf.d/ssl-proxy.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" # 链接后端服务(如Varnish缓存) links: - varnish ports: - "80:80" # HTTP端口(可选,根据需求开放) - "443:443" # HTTPS端口
配置说明:
volumes:挂载本地Nginx配置模板至容器,模板中使用${SERVER_NAME}等环境变量environment:SERVER_NAME指定代理服务器域名,需与SSL证书匹配command:通过envsubst替换环境变量生成最终配置文件,并以非守护进程模式启动Nginxlinks:链接至后端服务(如Varnish),确保Nginx可访问后端服务地址(如varnish:6081)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 docphpro/nginx 相关的常用 Docker 镜像,适用于 反向代理、负载均衡、静态资源服务 等不同场景: