【初学者专用】推荐的WordPress网站搭建配置

首先

我在搭建WordPress时一直在考虑要选择怎样的架构,所以我认为如果我重新搭建一个,并能成为那些也在纠结相同问题的人提供参考,那就好了。

首先,从一种消极的前提共识出发,
– 不想花钱
– 不想投入运营成本
– 不想投入建设成本
– 并不追求极高的安全性等

下面是前向共享的积极前提:
– 我们希望保持网站的高性能。
– 我们想要进行https化。
– 我们不仅需要生产环境,还需要测试用的暂存环境。

这是我在创建WordPress网站时考虑的事项。

总结起来,最终结构是这样的。

h-navi-biz-for-qiita.png

我想要尽早意识到这才是正确的选择。

从这里开始,我将首先介绍我们采取的方法,我们遇到了哪些困难以及最终的结构是如何的。

目录

    1. 哪个廉价又方便的服务器?

月租费用低
官方文档丰富
备份简单

绝对要实现HTTPS

使用WordPress的HTTPS化插件
使用Let’s Encrypt的免费证书

【优点】无需使用插件即可实现
【优点】免费实现
【缺点】需要修改apache和WordPress文件
【缺点】需要设置cron

使用Lightsail的负载均衡器

【优点】可轻松获取证书并进行管理
【缺点】每月需要付18美元

要获得高评价的网站

由谁来承担性能改进的缓存问题
使用Lightsail的负载均衡器无法缓存
是在apache还是WordPress上缓存

使用CloudFront就行了

【优点】简单且安全地实现HTTPS
【优点】强大的缓存
【优点】在安全方面灵活性高

最佳方案
结束语
参考资料

1. 哪个廉价且方便的服务器是最好的?

我认为首先应该考虑服务器。
因为之前我有前辈在AWS的Lightsail使用EC2创建WordPress实例,所以我最初参考了那种方法。

1-1. 月费用较低

每月只需花费3.5美元。这很便宜。关于内存和SSD,需要根据预计的流量和内容量进行调整,但是随着需求的增加,我认为选择除了WordPress以外的选项更加实际有效。因此,如果您只想要一个简单的WordPress网站,这样的规格完全足够。

スクリーンショット_2020-12-06_8_11_24.png

顺便说一句,最近听说Lightsail可以每月7美元的价格使用容器了。
虽然使用无服务器的Fargate在业务中非常方便,但由于费用问题,将其视为简化版可能也很方便。
(在本地可以使用Docker进行开发,可能比介绍的那个更好)
[更新]在Amazon Lightsail上,可以使用容器了!
可以在Amazon Lightsail容器服务中使用私有容器镜像。

1-2. 有丰富的公式文件。

在中国,与其他租用服务器相比,AWS的Lightsail价格便宜、操作简单且安全可靠。它有丰富的日语文档,而且AWS公司一直提供全面的文档支持,所以使用时几乎没有什么困扰的事情。

请注意:我已经完成了架构,也没有改变构成的计划,因此我不会对其他公司的租用服务器进行详细比较,这使我丧失了动力,对此请谅解。

1-3. 备份很容易

スクリーンショット 2020-12-07 18.21.26.png

https化是我們絕對希望實現的。

使用Lightsail只需点击按钮,并创建WordPress实例!然后,我认为接下来要把域名和DNS连接起来,通过浏览器访问URL就可以查看网站,但是我希望在此过程中一定要进行https加密。

为了提高Google的SEO评价,以及向用户传达网站是经过仔细维护且安全可靠的,我非常渴望拥有一个在喉咙中不断躍出的锁标志。

当我在网上搜索时,我按照以下顺序学习了一种最快捷的方法来实现它。

使用WordPress的HTTPS转换插件

WordPress是非工程师也能构建网站的优势。因此,有很多文章在网上存在,声称只需要轻松安装插件和设置,就可以完成!

「唔,那就试试这个插件吧,看起来很方便啊。」我想大家都会随便尝试一下(包括我自己),但当遇到意外的错误时,我却毫无对策,事后非常后悔。

特别是对于网站的https化,需要在web服务器上进行重定向处理,即当收到http请求时将其重定向到https。这就需要修改类似于Apache这样的核心文件。

把这么重要的任务交给不太懂的插件真的很可怕。

因为,尽管现在可以快速构建并且运行良好,但如果一年后等插件没有更新且与WordPress核心版本的依赖冲突,就存在无法运行的风险。

另外,当启用插件时,网站中的某个文件会被覆盖,但我真的不知道哪里被修改了,作为一名工程师,一旦遇到错误时很难追查到原因,这让我感到非常困扰。

事实上,我自己陷入了无限循环重定向的困境中,浪费了大量时间。

我知道插件很方便,而且通常会使用其他插件,但是对于HTTPS化,仅依赖插件可能是不安全的。我得出了这样的结论。

我们可以使用Let’s Encrypt提供的免费证书。

在Lightsail上创建的实例可以自己负责进行HTTPS化,您认为应该由谁负责?

为了添加锁定标记,需要一个能够确保网站安全性的证书。而著名的免费证书提供者是Let’s Encrypt。

步骤

    • サーバーにLet’s Encryptの無料証明書をインストール

 

    • apacheとwordpressにhttpがきたらhttpsへリダイレクトさせる処理追加

 

    Let’s Encryptの無料証明書を更新するcronの設定

如果你选择采用这种方法,请参考这篇文章,内容详细地总结了在Lightsail上实现常时SSL的WordPress。

不使用插件的优点

只要明确地标明了修改的部分,无论出现什么错误,只需去除该部分即可立即恢复。
能够实现这一点而无需使用插件本身就是一个优点。

2-2-2. 【优点】可以免费实现

由于Let’s Encrypt作为免费证书而闻名,似乎被广泛使用。
当点击网站上的锁图标并查看证书(有效期)>发行者时,可以确定是哪个证书,偶尔会看到Let’s Encrypt。
由于它是免费且方便,而且由于众人所用,所以有很多关于它的使用方法,这是一种可靠的优点。

2-2-3.【缺点】需要修改apache和wordpress的文件。

如果可以的话,我个人不太想介入到这里来。
如果只是Apache,只需要阅读官方文档并进行设置即可,但是当Apache和WordPress组合在一起时,我无法完全理解它们的行为,因此感到不安。
实际上,我试图修改这些文件并进行行为测试,但是当调试失败时非常困扰。(不过,可能只是因为我的应对能力较差,所以一个合理的选择可能是存在的。)

2-2-4. 【缺点】需要设置cron。

使用证明书时,随着时间的推移,证书的有效期限将会过期。
如果正在使用AWS证书(AWS证书管理器),AWS会自动更新证书,因此您无需担心期限的问题。

然而,让我们加密(Let’s Encrypt)并不会为我们提供任何“证书管理”服务。
那么,我们要怎么做呢?答案是,我们需要定期执行更新Let’s Encrypt证书期限的处理。

在服务器上定期执行处理的最佳方式是使用被称为cron(克朗)的工具。
对于这个cron,我们将设置每隔一个月执行此处理的请求。

    • 証明書更新のシェルスクリプト

 

    cronの設定

由于我们希望降低运营成本,因此希望将”负责某些重要处理的cron作业正在运行”这一事实从运营中的共享事项中删除。

因此,我决定放弃采取这一方针。
值得一提的是,当初我对证书、Lightsail负载均衡器和CloudFront周围的费用感觉不太清楚,所以让staging环境保持免费在合理和方便吧?我正在考虑这个方针。
(其实,采用完全相同的配置来建立staging环境和生产环境,有利于在出现问题时更容易找到原因。我觉得没有这种思考方式的话,作为构建负责人可能是个失败者。这个可能会被很多人视为理所当然,但我想把它作为我的失败经验分享出来。)

使用Lightsail的负载均衡器。

接下来考虑的是Lightsail的负载均衡器。
几年前,我发现我的前辈将WordPress设置在Lightsail上,并且使用了负载均衡器,于是我了解到了这种方法。

2-3-1. 【优点】方便获取证书并提供管理服务

由于AWS提供的EC2低成本服务,因此它会处理证书管理等任务。只需设置负载均衡器并点击创建证书即可轻松实现https化。

证书会通过DNS自动更新,所以您不必担心证书过期的问题。

2-3-2.【缺点】需要支付每月18美元。

スクリーンショット 2020-12-06 9.40.10.png

对于能够简单而安全地进行HTTPS加密,并且不必担心证书过期的优点来说,是否值得支付18美元每月呢?曾经有这样的想法。

h-navi-biz_infra_drawio.png

我对这种配置全部运行在Lightsail上感到很明确,但对于只是为了证书而放置负载均衡器有些疑问。如果流量增加了,可以轻松地将2台变成3台来进行负载均衡,这似乎非常方便,但我完全没有考虑到会有那么大的流量。

要获得高的网站评价

创建网站之后,我们会添加内容并发布页面,但我觉得大家可能会担心能否提高SEO评价。

在自己的站点发布之前,我通过PageSpeed Insights反复检查了很多次,简直是非常烦人。

我认为,为了进行SEO评估,工程师可以做很多事情,但在其中,我认为工程师最应该负责的是网站的速度方面。

谷歌会评估用户友好的良好网站和良好内容。在此过程中,即使内容开发团队努力撰写和设计文章,但如果网站性能不佳,那么努力也会化为泡影。

如果您在初期发布阶段就想要追求SEO的高评价,那么为了提高网站的基础性能,花费足够的成本来制定、设计和实施策略是值得的,因此,考虑是否有为WordPress定制的最佳架构是个不错的主意。
(顺便说一下,我已经研究了AMP化、PWA、站点地图、用于SEO的插件、图像压缩方法、缓存等。AMP效果较差,不被采用;PWA效果一般,没有特别需求,不被采用;缓存由后述的CF来处理,不被采用;其他项目都被采用。)

另外,近来Google明确表示满足Web Vitals(LCP、FID、CLS)这三个指标在SEO评估中非常重要,因此尽早进行适配变得至关重要。
由于上述核心算法已经更新实施,所以现在已经处于注视排名变动等情况可能发生的阶段。(2020-12-06记录)

所以请找到一种在WordPress网站上实现Web Vitals高评分的结构和方法~(依靠他人帮助)(自己动手)。

谁负责缓存以提高性能的问题。

稍微偏离一下话题,但作为提高性能的一个解决方案,从浏览器缓存网站的请求非常有效。

大多数网站的显示通常采取以下流程:请求数据→确认→返回数据。但缓存可以改变这个流程,即请求数据→已存在→好的,那就直接显示。

那么,就变成了谁来负责处理现金的问题。

3-2. Lightsailのロードバランサーではキャッシュできない

先ほどの構成だと、wordpressの手前にロードバランサーがいます。なのでロードバランサーにキャッシュしてほしくなります。
そうするとリクエスト回数が減り、リクエスト回数が減るとデータ通信にかかる時間が減り、結果的にサイト速度は早くなるからです。

ただ、自分の知ってる限りではLightsailロードバランサーでキャッシュする方法はなさげです(インスタンスとは違ってsshもできない)。

在Apache和WordPress中,选择哪个用于缓存。

では、ロードバランサーの後ろにいるLightsailのインスタンスの中にいる、apacheもしくはwordpressにキャッシュを担わせることになります。

自分が調べたときは色々なプラグインや紹介記事が出てきました。どれがいいのやら、ぱっと見だと全然わかりませんでした。

やり方としては、apacheのキャッシュ設定を調べて、apacheのconfファイルを自前でいじるか、良さそうなプラグインを入れてそれに全部任せてしまうかのどちらかになると思います。

自分は、プラグインでキャッシュした場合にデバッグや原因究明が不可能になりそうな気がしたので最終手段にしようと思いました。
キャッシュはバグを引き起こしやすいもので、キャッシュしてはいけないものがされていてユーザーに間違ったものを見せてしまう現象がよくあり、それを未然に防ぐためにはそこそこ神経質になる必要があります。
あとはコンテンツを変更したのに反映されない!?なんで!?って思っていたらキャッシュが効いてただけでした、とかキャッシュ時間がモノによっては違うからコンテンツ反映まで待機してください、とかあるあるな印象です。

作为结论,我觉得去插件中改动缓存是有点害怕的。(但是为了提高性能,可能会再次考虑。)

4. 在云前端使用可行。

为了提高网站速度,我希望至少缓存一些资产类文件(如jpg、png、css、js)。但同时也希望保持良好的可读性。

そう思いつつ何かないのか検索してたら、CloudFrontを使ってる構成の記事に出会いました。
(どれだったか覚えてないけど、丁寧なのが2~3記事以上ありました。)

え?、、、これでいいやん。。。ってなりました。
普段業務でCFを使っていたのに、なぜ自分はこれにしなかったのかと激しく後悔しました。

4-1. 【メリット】簡単かつ安全にhttps化

CloudFrontはawsが提供するCDNです。
世界中にエッジサーバが存在し、そこが良い具合にデータをキャッシュして各ユーザーに返却してくれる大変素晴らしいやつです。

そんなCFは、クライアント(ユーザー)側とオリジン(webサーバー)側の両方のリクエストをどっちのプロトコル(https/http)にするか簡単に制御することができます。
CFにはACMで作成した証明書(たしか月額1ドルくらいで、自動更新も可)を付与できるので、簡単にhttps化できるのです。
わざわざLightsailのロードバランサなど使わずとも、CFにhttps化を担わせれば良かったんですね。
(ちなみにLightsail側は独自のDNSやroute53的な設定を持ってて、GUIが本家と少し違ってわかりづらいため、やはりオススメしません)

4-2. 【优点】强大的缓存

CF的优势在于能够进行精细的缓存设置。
当有资源请求(jpg、png、css、js)到达时,通过CF进行缓存并从那里返回。
通过这种方式,可以减少请求量并加快网站速度。

スクリーンショット 2020-12-06 11.05.32.png

4-3. 【优点】在安全方面的灵活性

要在WordPress上进行充分的安全防护,需要考虑并实施很多事项。

セキュリティ面の対策話はこちらの記事が参考になりますので、興味ある方はどうぞ。
【WP】WordPressの基本的なセキュリティ対策
WordPressの侵入対策は脆弱性管理とパスワード管理を中心に考えよう

CFにはWAFというファイアーウォールを簡単に組み合わせることが出来るので、不正なリクエストが来たらブロックするためのルールを自由に設定することができます。

wordpress側で色々とやらないといけないことがあるにせよ、ひとまずWAFがアタッチされているCFを経由させることができる点は非常に安心できます。

ちなみに料金面についてはCFは稼働時間に対する課金でなく通信量に対する課金がメインなので、トラフィック量が大したことないならばそこまでボトルネックにはならないはずです。
CFの料金はこちら

5. 最佳解决方案 ‘àn)

上記でいこうと決めたのでstaging環境を同じ構成で作成しました。
危ないファイルをいじったりしなくていいので、構築や確認作業が非常に楽です。
また、料金面も全然許容範囲です。

h-navi-biz-for-qiita.png

6. おわりに

我分享了我认为最适合自己建立WordPress网站的配置,并介绍了到达这个配置的过程。期待您的反馈和意见。

如果是类似的话题,我认为这篇文章也可以作为参考。使用CloudFront来分发WordPress网站。

如果你对WordPress有兴趣的话,以下的文章提供了关于WordPress如何的评价,可以参考一下。
【WordPress】WordPress的不足之处
【WordPress】WordPress的优点之处

余談ですが、CF構成で構築したあと、コンテンツも少ない状態なのになぜかサイト速度が遅かったです。
原因を調べていたらNotoSansJapaneseというGoogleフォントの読み込みが遅いせいだと分かりました。
これを改善するだけでPageSpeed Insightsのスコアが30点ほど上がってmobile/pcともに90点越えの緑になりました。
こちらの記事が非常に参考になりましたので、興味ある方はどうぞ。
Google FontsのNoto Sans Japaneseが重い?記述を変えたら速くなるかも!
なお、wappalyzerとPageSpeed Insightsを使ってweb上のwordpressサイトをいくつか速度チェックしてみたら、大抵のサイトがこのフォント読み込み遅い問題のために速度評価を大きく落としていました。リーズナブルに改善できるため非常に勿体無いです。

据说,WordPress是全球使用最广泛的内容管理系统,其在网络上的市场份额也是压倒性的。尽管它容易成为漏洞的温床,但它能够以实惠的价格满足那些想要拥有网站的人们的愿望,这表明它是一项创新且优质的服务。然而,不可否认的是,它也带来了许多让工程师们头疼的问题,所以请注意!(我再也不想遇到原因不明的重定向循环了,真烦啊啊啊…)

7. 参考资料

    • [アップデート] Amazon Lightsail でコンテナが利用可能になりました!

 

    • プライベートなコンテナイメージを Amazon Lightsail コンテナサービスで使う

 

    • Lightsailで常時SSLのWordPress

 

    • 【WP】WordPressの基本的なセキュリティ対策

 

    • WordPressの侵入対策は脆弱性管理とパスワード管理を中心に考えよう

 

    • CFの料金はこちら

 

    • 【WordPress】WordPressのここがダメ

 

    • 【WordPress】WordPressのここがイイ

 

    Google FontsのNoto Sans Japaneseが重い?記述を変えたら速くなるかも!
广告
将在 10 秒后关闭
bannerAds