作为一个Docker老用户,我本以为这是个很简单的事情:
- 把docker官网的compose例子复制下来
- build
- 把容器的80转发到随便哪个端口上
- nginx建个vhost,配一下转发
然后我就发现,我错了。
build以及之前的过程,问题还是没有的,这点让人十分欣慰(bushi)。然后nginx的配置文件也是高速糊了一个出来。满心欢喜地输网址回车,结果初始化CSS的界面掉了……
聪明的我这时候想到了,WP是PHP的,很多资源路径好像都是用前缀拼的绝对路径,那么也就是说我们先忍忍这个丑陋界面,到时候到后台改改前缀就好了对吧!
然后发现数据库设置POST不上去……
怒了,挂个虚拟局域网直接访问docker那个端口……
发现超过10000的端口浏览器提示不安全……
换了个端口,数据库建好了,然后登录后台,换好路径,然后用域名登录。
然后提示重定向次数太多……
查阅一番资料,原来是挂了HTTPS,但是nginx转发的时候用的HTTP,然后WP就不高兴了。
加了个转发协议就好了。
总结一下,我这个WP是这样的
宿主机80 → 宿主机nginx → docker容器的80
docker暴露的端口如果想轻松一点的话建议不要超过10000,什么8080啊8001啊都挺好。docker容器就绪之后随便找个啥方式(比如SSH隧道)把数据库建了,然后把网站前缀改好,CSS啥的就正常了。
关于nginx的转发,我是直接这么写的:
location / {
client_max_body_size 10m;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
}
X-Forwarded-Proto解决HTTPS重定向的问题,client_max_body_size建议改改,默认1M,影响传文件。不过记得WP的PHP也得加个php.ini才能传大文件。之后可以开个文章说说。
好家伙