集:合在一起 放在一起
群:一堆 很多
服务器架构集群:多台服务器组成的响应大并发,高数据量的架构体系。
分布式服务器架构
特点:
(1)成本高
(2)能够降低单台服务器的压力,使用流量平均分配到多台服务器
(3)使网站服务架构更加安全稳定
服务器概念: 提供某种或多种服务(功能)的机器(计算机)
(1)硬件 性能比较好的电脑主机
(2)软件 实现各种服务支持的协议的软件
提供http https协议的服务器。网站网页访问的功能
Apache 老牌的服务器软件,功能多并且稳定 ,支持多种配置,lamp
Nginx 安装简单小巧,并发量高,web服务器,代理服务器,邮箱服务器
lls 微软公司,APS脚本使用,可以通过fast-cgi(网络接口服务)的方式使用PHP
Lighttpd 德国开发的软件,小巧,提供web服务支持
关系型数据库(RDBMS):
Mysql mysqlab => sun(java) => Oracle
Mariadb mysql的一个分支
Postgresql 加州伯克利大学,学院派
Oracle 大型商业数据库
Sqlserver 微软数据库
DB2 IBM
Sqllite3 手机端(iOS和安卓)使用
非关系型数据库
Memcached
Redis
Mongodb
负载均衡服务器,分发请求到不同的服务器。使流量平均分配。
服务器死机,称为宕(dang)机
硬件级别 性能好,价格高
软件级别 性价比高
Lvs linux下分发软件
Nginx upstream功能分发
资源服务器存储静态资源,css,js,图片,视频..。一般此服务器会有硬板(ssd)读写快速,带宽更大。
反向代理服务器具有代理请求到对应的服务器的功能,也具有缓存的功能
代理服务器:
比如a需要访问c,但是a不能直接访问c。
(1)b可以访问c,a可以访问b
(2)a告诉b帮忙访问一下c,把c的数据返回给a
Spuid :
Varnish :
Nginx :
高可用服务器,用来监控负载均衡服务器,如果一旦负载均衡宕机,会接替负载均衡服务器的工作,继续进行网络分发的工作。可以认为是负载均衡的备用服务器
Hearbit 心脏敲击
Keeplive 保持
Memcached
redis
需求:
网站服务器在北京
用户1:天津 --> 北京节点 用户访问CDN 服务器
用户2:杭州 --> 上海节点
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
(1)热部署:Nginx在修改配置文件之后,不需要重启,重载操作
(2)可以高并发连接:相同配置的服务器,nginx比apache能接受的连接多得多
(3)低的内存消耗:相同的服务器,nginx比apache低的消耗
(4)处理响应请求很快:nginx处理静态文件的时候,响应速度很快
(5)具有很高的可靠性
1)nginx和apache的软件底层架构不一样。
(1)Nginx的并发要比Apache好很多。
(2)Nginx属于轻量级服务器软件,Apache属于重量级的软件;
(3)Nginx在处理静态文件的效率要比Apache好很多,Apache在处理动态页面效果要 比Nginx高
(4)Apache在安全性要比Nginx要好。
因此有一种不常用的组合:lnamp。LNMPA
2)运行模式不同
(1)Apache运行PHP是通过加载PHP5模块运行。由于是Apache去加载PHP5模块, 所以每次修改了php.ini配置文件需要重启Apache。
(2)Nginx运行PHP是通过网络连接php-fpm(fastCGI)方式运行.php-fpm是一个独立的 软件(默认端口:9000)。因此在Nginx下修改了php.ini配置文件需要重启php-fpm
在之前的LAMP基础上安装,节省安装Mysql时间
由于
安装Nginx+php和apache+php的使用方式不同,所以重新安装php
(1)软件包和脚本上传到服务器
使用工具:FileZilla(https://filezilla-project.org/)
(2)查看并执行install_nginx.sh脚本
赋予脚本权限,并执行安装脚本: chmod u+x install_*
执行脚本:
配置文件路径
查看主配置文件
查看文件有时可能不方便,可以使用sftp工具连接文本编辑器进行设置查看
#user nobody;
worker_processes 1; # 设置工作进程数量
events {
worker_connections 1024; # 单个进程的连接数(并发量)
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 负载均衡服务器配置
upstream nginx {
# ip_hash hash一致性让同一个用户访问同一台服务器(解决session丢失问题)
ip_hash;
# 192.168.174.130 分发到的服务器
# weight 权重
# max_fails 分发最大失败次数
# fail_timeout 失败超时时间
server 192.168.174.130:8080 weight=1 max_fails=3 fail_timeout=20s;
server 192.168.174.131:8081 weight=1 max_fails=3 fail_timeout=20s;
}
# 配置解压缩
gzip on;
# http的协议版本
gzip_http_version = 1.0;
# 如果是IE就关闭压缩
gzip_disable ‘MSIE [1-6].‘;
# 需要压缩的文件格式(不建议压图片可以压缩css,js)
gzip_types image/jpeg;
# 推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
#gzip_comp_level [1-9]
# 复制一个server端,创建一个新的虚拟机
server {
# 默认端口
listen 80;
# 域名解析
server_name www.xfsec.com;
# 网站根目录
root /home/xing/xing/project
# 缓存图片文件
location ~ \.(jpeg|jpj|png)${
# 缓存时间为1day
expires 1d;
}
# 默认访问页
location / {
# 网站根目录
# root /home/xing/xing/project
# 分发代理
proxy_pass http://nginx;
index index.html index.htm
}
error_page 500 502 503 504 /50x.html;
# 配置错误页面
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000配置PHP服务
location ~ \.php$ {
# 使用最上层的root变量
# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 如果Apache和nginx的网站目录是一个,Apache需要使用分布式配置文件,开启此项。
# deny access to .htaccess files, if Apache‘s document root
# concurs with nginx‘s one
#
#location ~ /\.ht {
# deny all;
#}
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://192.168.1.60;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(1)启动Nginx
(2)解析域名,建立网站目录并访问:C:\Windows\System32\drivers\etc(hosts文件)
①查看修改脚本
执行结果查看软件目录
②复制PHP相关配置文件
③启动php-fpm
①配置php服务的路径
②测试配置文件并重载
③测试phpinfo文件
Nginx通过配置,可以告知浏览器,返回数据的有效时间,浏览器就可以根据数据的有效时间,确定是否应该到服务器请求,如果数据没有超过有效期,就使用浏览器缓存的数据。
缓存功能开启,是为了用户能够快速获取使用到数据,可以减少服务器请求,降低贷款压力。
①配置缓存选项
②上传图片,并测试访问
③重载配置文件
压缩资源,通过网络发送的大小就更加节省资源了,带宽占用变小,启用压缩机制,为了能够快速访问到资源。
Web服务器进行压缩,浏览器需要进行解压操作。
目前市场大部分浏览器是支持gzip压缩的。
IE6及以前不支持
配置文件参数保存之后,上传配置文件
此架构最少需要三台服务器
通过虚拟机克隆的方式,快速拥有多态虚拟机。
负载均衡服务器nginx,
192.168.174.126
Web1
192.168.174.130
Web2
192.168.174.131
克隆虚拟机操作步骤:
克隆虚注意拟机必须处于关机状态
①配置负载均衡服务器
分发段配置
访问域名找虚拟主机,通过虚拟主机,代理到upstream,upstream分发到各web服务器
Windows域名解析
②启动各服务器
负载均衡服务器只需启动nginx,不在进行PHP解析
Web服务器启动nginx和php-fpm服务
Web1服务器
Web2服务器
③查看分发效果
为了能够看到分发效果,在web1和web2服务器页面写入不同的测试标识
Web1
[root@localhost 桌面]# vim/usr/local/nginx/html/php61/index.html
<meta charset=”utf8”>
Web2
<h1>时间过得好快呀,又饿了</h1>
Web2
[root@localhost 桌面]# vim/usr/local/nginx/html/php61/index.html
<meta charset=”utf8”>
Web2
<h1>时间过得好快呀,又饿了</h1>
不同的服务器需要通过session判断用户的状态。
默认session存储到服务器的硬盘文件中,不能够共享。
session丢失会造成以下后果:
解决方案:
原文:https://www.cnblogs.com/xingxingnbsp/p/11687213.html