侧边栏壁纸
  • 累计撰写 47 篇文章
  • 累计创建 1 个标签
  • 累计收到 25 条评论

目 录CONTENT

文章目录

宝塔Nginx反代docker安装的wordpress容器

Qiui
2020-08-14 / 1 评论 / 0 点赞 / 1 阅读 / 0 字

简介

Docker安装的wordpress一般适用于性能比较富裕的vps或者vds,独服等等,不推荐在那种1核1G的vps上用docker,两层虚拟,对于某些小鸡性能损失还是比较大的。本来性能就捉襟见肘的机子,小马拉大车,硬是高负载,不知道的还以为24小时都在吃CC,DD呢。 docker安装的wordpress容器中,用的是Apache。Apache有很多好处,很多wordporess的插件例如缓存插件和安全设置插件都兼容apache,但对nginx很不友好。当然nginx也有很多优点,占用资源小,并发强等等,如标题所述使用nginx反代wordpress容器,鱼和熊掌或可兼得不过我现在也是改成了nginx直装+W3 Total Cache缓存,还是没有必要去为了个apache装个容器,实际的效果并没有想象中那么美好,nginx自己足以。 小孩子才做选择。 如果直接在设置里映射端口,然后映射ssl证书和私钥路径就可以直接当作成品访问了,当然还得在宝塔中创建wordpress要用的数据库。但是如要用nginx反代,就得继续往下看。

1. 安装宝塔和docker

因为要装宝塔,我首选centos7,宝塔官网有一键脚本 Centos yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 安装完宝塔之后进入网页可视化操作界面,安装Nginx+MySQL,同时在宝塔软件里,安装免费的系统防火墙。

2. 安装docker

//首先安装curl yum install curl -y //安装docker ce curl -sSL https://get.docker.com/ | sh //查看docker是否运行 systemstl status docker //安装portainer(提供docker可视化操作网页端) docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name ui --restart=always docker.io/portainer/portainer 安装完portainer之后打开ip+端口,设置portainer,具体设置可以参考网上教程。 portainer中新建bridge类型网络,设定子网,网关等等.(Note! docker中容器只有使用新建的网络才能自定义ip地址)。 同时添加wordpress容器,设定IP,如 172.100.100.100,映射容器端口80。

3. 配置网站

然后在宝塔中添加网站域名,填上反代容器的ip+端口 如172.100.100.100:80。 此时不要将域名解析到ip,只需要在系统host文件里将域名指向服务器ip即可。(Note! 若将域名解析到ip,会在很多网站留下历史解析记录,即使之后套上cdn,还是会被别人查到然后直接攻击服务器。) 进入域名进行初始设置,数据库如果连接不上请在宝塔防火墙里开放3306端口,并在宝塔的防火墙插件中设置仅允许容器的ip访问。 进入portainer中wordpress容器的命令行界面,编辑wp-config.php,在刚开始的一堆注释下面的空白处,加入 define('FORCE_SSL_ADMIN', true); if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on'; 同时,在宝塔反代配置中的两个location部分添加 proxy_set_header X-Forwarded-proto https; 这时,宝塔网站设置中打开强制https,网站就能正常全站https访问了。 在dns解析商处把域名解析到cdn(例如解析到cloudflare,不过可以考虑国内访客解析到对国内友好的cdn,国外则解析到cf的cname),当然猛人也可以直接解析到源服务器(想被爆菊的朋友都会这么干)。 另外,想对容器内的php进行设置的话,进入容器的命令行界面,在/usr/local/etc/php/conf.d/目录下新建custom.ini,然后进行自定义设置,例如 upload_max_filesize = 64M post_max_size = 64M 需要在容器中安装apache模块的话,也很简单,例如mod_headers: 在容器内cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/然后重启容器之后就有了。

4. wp插件

wp super cache 对于apache很友好,不需要在插件中额外设定。 All In One WP Security 很好用的安全插件,里面可以设定关闭wp rest api。另外它的很多安全设定是基于apache的,如果只有nginx,则即使勾选都完全无效。 WPvivid Backup Plugin 继几个有名的备份还原迁移功能的插件都开始高额收费之后,这个插件就成了我迁移倒腾的必备插件。 另用wpscan扫了下暂时没发现什么大漏洞,建议各位看官也用wpscan扫一下自己网站,看看漏洞,或者尝试下爆破自己网站,看看安全做的怎么样。
0

评论区