需求描述
搭建一个外贸网站,不使用saas平台,使用成熟的架构,尽量以低成本高性价比的方式搭建,网站使用中英双语,需要国内和国外都能访问
技术方案
- 综合考虑之后,放弃Shopify平台,选用wordpress的woocommerce系统
- 为应对网络攻击,选择雷池作为Waf对网站进行防护
- 系统架构图如下

服务器选型建议
源站服务器要求:性能强劲,推荐2核4G以上。
此处我选用netcup的RS 1000 G12,数据中心选择美国,性能够强,平台和系统够稳定,99.9%的最低可用率保证,性价比特别高,自带免费Dos防护,不过由于我们要用雷池Waf,所以用不到这个功能了,地址:https://www.netcup.com/
我在一台RS1000上面同时跑过10个woocommerce商城,运行十分稳定迅速,不过这些网站并发不高

Waf服务器选型要求:这里我使用的是免费版的雷池Waf,只能单线程运行,所以选择1核2G的配置就够了,cpu最好是AMD的,因为单核性能强。这里由于需要考虑到国内用户的访问优化,因此特地选用了DMIT的LAX.AN5.Pro.TINY,这是目前我测试下来目前相对来说国际线路质量和服务最好的。地址:https://www.dmit.io/
如果不需要考虑国内用户访问的话,那直接用netcup的低配服务器就行了
搭建过程
源站服务器
- 源站服务器选用debain系统,然后安装aapanel(海外版宝塔),随后一键安装PHP8.4,Mysql8.0,Nginx1.24,安装过程不赘述,网上教程太多了
- 到网站--添加站点创建你的站点

- 打开站点详情,在域名管理这里再加一个
源站服务器公网ip:任意端口号的访问地址,我这里用的是9011,你只要选择没有在使用的端口号就行了,这一步是因为源站是通过公网ip加端口号映射出去给waf的

- 选择好重定向规则为wordpress

- 到配置这里添加两行配置,ip地址填写Waf服务器的公网ip,防止未经waf的流量攻击源站
bash
allow XX.XX.XX.XX; # 反向代理服务器的IP
deny all; # 拒绝其他所有IP

-
到wordpress官网下载最新版wordpress,随后上传压缩包到服务器上并解压,将里面的文件放到上面第2步的网站路径里面
-
打开站点路径下的wp-config-sample.php/wp-config.php,在
/* Add any custom values between this line and the "stop editing" line. */下面添加以下代码
bash
/**
* 修复反向代理后的HTTPS重定向问题
*/
$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
/**
* 处理反向代理后的真实 IP 和 HTTPS
*/
if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$forwarded_ips = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
$_SERVER['REMOTE_ADDR'] = trim( $forwarded_ips[0] );
}
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
$_SERVER['HTTPS'] = 'on';
}
Waf服务器
- Waf服务器上运行雷池官网的一键安装命令进行安装,地址:https://help.waf-ce.chaitin.cn/node/01973fc6-df0f-7650-bafa-8ed8d2fc2bc1
- 到防护应用--高级配置这里打开这些选项

- 到黑白名单--自定义规则,添加以下两条规则


bash
/wp-json/wp/v2/users/me?context=edit&_locale=user
- 到CC防护--频率限制--全局配置修改限制,此处可按需调整

- 攻击防护--语义分析模块调整如图所示,关闭了XSS检测是因为在编辑wordpress时这里总是会被误判为攻击,所以我先关闭了,等完成网站搭建之后再开启,各位自行按需调整

- 当你意识到自己的访问被拦截时,可以到黑白名单处查看拦截详情,确认是自己的正常访问则可以把ip加入白名单

- 将域名的dns添加A记录解析到waf服务器的公网ip
- 添加应用,上游服务器地址填写站点刚刚设置的公网ip加端口号,记的开启CC防护和攻击防护


wordpress
- 完成上述设置之后,访问网址,开始搭建,步骤就不赘述了,网上教程很多
- 主题尽量选择轻量的,个人不建议使用woodmart等特别重的主题,设置特别复杂,且拖慢访问速度,我使用的是astra主题,可以到淘宝购买到正版授权,很便宜
- 不建议使用elementor这些的编辑器,拖慢访问速度,且我觉得不好用,使用原生的古腾堡就够用了
- AI时代来了,其实更建议是用AI来编写页面html代码,然后放到网页上去,可以比编辑器做的好看多了,推荐使用gemini
- 推荐插件:(大多为免费,pro版本可以到tb看看pojie的)
· Advanced Shipment Tracking for WooCommerce,物流追踪
· Bulky - Bulk Edit Products for WooCommerce,批量编辑商品信息
· FileBird Pro,图片分类管理
· Redis Object Cache,访问速度优化
· Simple CAPTCHA Alternative with Cloudflare Turnstile,人机验证,不过国内访问质量一般,也可以使用我从子比主题提取出来的人机验证插件
· SureMail,发邮件的
· TranslatePress,翻译
· WC Share Cart URL,购物车分享,不过需要适量对插件代码进行调整才好用
· WP Statistics,统计网站访问流量
结语
内容太多了,我这里给的教程其实比较简单,网上能搜得到的教程我就不写这么详细了,主要还是想分享一下个人经验总结出来的雷池waf防护框架结构,之前用宝塔直接对外开放网站的时候总是会遇到CC攻击等的一些网络攻击无法处理,现在上了雷池之后就好多了,下期写写怎么优化网站访问速度,这里也多的注意事项。各位读者如果有问题想交流欢迎在评论区留言。