- 首先知道一下Nginx的功能有哪些
反向代理,流量转发,伪静态
流量转发支持转发TCP和UDP两种协议(默认转发TCP,UDP转发需要标识流量的类型是UDP)
- 需要用到的软件(基于的SQL Lite,MySQL或者PostgerSQL也可以设置)
WebDAV服务端软件(任意即可,看你想用什么)
某WebDAV软件(Windows)
Nginx(1.9.0版本以上)
PHP(如果你网站不是PHP写的,这个可以不要)
任意数据库引擎(看你用的是什么数据库)
AppNode 或者宝塔面板(你也可以不用,这个不是强制的)
一个图床(随便哪个)
- 需要用到的服务器数量
最低用四台服务器,建议全部挂上CloudFlare,并且安装Nginx(宝塔和AppNode也可以)
整个过程中不需要用到反向代理,请悉知,任何网上的Nginx反向代理负载均衡均没有用,主站死掉其他跟着一起死。
一台主控机不搭建网站,在两台从机上搭建网站,第四台机器用于存放数据库(数据库类型不限,只需要搭配软件使用罢了)
此方法国内也可以用,当然没有数据库服务器也可以,购买xxx云的云数据库也无所谓(反正都是数据库)
数据库连接的方式不建议使用域名,直接用IP连接;端口不使用常用端口,更改非标准端口。(防止被抓到服务器IP)文件放后台配置文件,不放前端(这个是对开发网站的开发者说的)
- 实现的原理图
IPS是CloudFlare,因为我没找到合适的图标表示CloudFlare,最后面的服务器是数据库服务器,不需要走CloudFlare或者解析DNS上去(防止DNS记录查到数据库的IP地址)
- 实现过程
首先先建第一个站点,配置好服务器的数据库连接,然后整站文件复制,丢进其他服务器配置网站,和域名(不要一个一个配置,可能连接不上数据库);设置每个节点的名称和服务器主机名:
我这里假设是我网站服务器的主机名(确实是我现在用的主机名)
hostnamectl set-hostname dkm.lswjs.us
hostnamectl set-hostname dkm.ny.us
hostnamectl set-hostname dkm.mam.us
hostnamectl set-hostname dkm.xyt.us
数据库服务器设置转发端口(这样不需要更改数据库的端口号)
firewall-cmd --add-port=3456/tcp --zone=public --permanent
firewall-cmd --add-port=3456/udp --zone=public --permanent
firewall-cmd --add-forward-port=port=3456:proto=tcp:toport=3306 --permanent
firewall-cmd --add-forward-port=port=3456:proto=udp:toport=3306 --permanent
firewall-cmd --reload
要开启端口才可以转发,不开端口是没有办法转发的,转发到3306端口(这是一个保护数据库的方法,至于为什么应该都知道的吧)。
所有的网站都连接这个数据库服务器(如果有附件就需要用到WebDAV,挂载到上传附件的目录,实现多个服务器附件同步,都可以提取到附件)至于空间啥的,还是建议去用OneDrive做,然后用Cloudreve做WebDAV,这样的成本最低;国内可以用天翼云盘或者各大云厂商的对象存储(价格自己斟酌吧,那么贵);
Nginx的负载均衡设置方法:
下面是配置文件内容
upstream backend {
ip_hash;
server dkm.lswjs.draknightm.cf;
server dkm.ny.draknightm.cf;
server dkm.mam.draknightm.cf;
server dkm.xyt.draknightm.cf;
}
ip_hash配置可以配置IP或者配置域名;可以标记配置的网站服务器不可用(手动)
范例:
server dkm.lswjs.draknightm.cf down;
标记服务器状态为down;负载均衡的主机不会把请求丢给down标记的服务器(手动)
自动为服务器自动在主控机的缓存标记;服务器在请求途中出现5秒请求不上自动切换其他机器,并标记请求不上的服务器为down;
对于SQL Lite为数据库的服务器,至于这个,处理起来很容易,挂载WebDAV,因为SQL Lite是静态文件,在后边的数据库服务器上开启WebDAV,把这个SQL Lite的文件挂载到网站的默认SQL Lite文件储存目录即可;基本方法八九不离十,看你自己能怎么想(当然有钱的话对象存储也是可以的);至于怎么弄那是你的事情,没必要反驳,你有其他能同步数据的方式也可以,不同的人就有不同的想法,这些东西基本上都是活的,不是死的。
评论