上期课程疑问解答
文件上传413错误解决
上传过大的文件,需要修改nginx和php的配置文件
nginx虚拟主机配置文件,默认1M
在server中加入以下内容,将上传文件大小改为50m
client_max_body_size 50m;
php.ini配置文件,默认2M
修改php.ini中的配置文件,将上传文件大小改为50M
upload_max_filesize = 50M
让LNMP架构和存储服务器建立关系
- 找出图片的存储路径
- 可以通过图片的链接信息查找
- 一般图片存储在站点目录,可以根据上传时间使用
find
命令查找也可以通过inotifywait
命令监控目录
find /html/blog -type f -mmin -5
inotifywait -mrq /html/blog
- 使web服务器和存储服务器建立关系
将目录的数据备份后,再将nfs挂载到服务器的上传目录
在nfs服务器中,设置挂载目录的属主和属组,同时也需要注意用户之间的转换和设置用户的uid和gid以及文件目录的归属信息
#服务端和客户端的用户的id需要相同
sed -ri.bak 's#(sync)#\1,anonuid=1002,anongid=1002#g' /etc/exports
负载均衡的概念说明
什么是集群
- 完成相同任务或工作的一组服务器
什么是负载均衡
- 实现用户访问请求进行调度分配,分担用户访问压力
什么是反向代理
- 反向代理:外网->代理服务器->公司网站服务器
- 正向代理:内网->代理服务器->互联网->web服务器(VPN)
准备负载均衡的环境
主机名称和IP地址规划
服务 | 主机名 | eth0网卡IP | eth1网卡IP | 软件 |
---|---|---|---|---|
防火墙服务器 | firewalld | 10.0.0.81 | 172.16.1.81 | firewalld |
负载均衡服务器 | lb01 | 10.0.0.5 | 172.16.1.5 | nginx,keepalived |
负载均衡服务器 | lb02 | 10.0.0.6 | 172.16.1.6 | nginx,keepalived |
web服务器 | web01 | 10.0.0.7 | 172.16.1.7 | nginx |
web服务器 | web02 | 10.0.0.8 | 172.16.1.8 | nginx |
web服务器 | web03 | 10.0.0.9 | 172.16.1.9 | nginx |
存储服务器 | nfs01 | 10.0.0.31 | 172.16.1.31 | nfs |
备份服务器 | backup | 10.0.0.41 | 172.16.1.41 | rsync |
数据库服务器 | db01 | 10.0.0.51 | 172.16.1.51 | mysql,mariaDB |
批量管理服务器 | m01 | 10.0.0.61 | 172.16.1.61 | ansible |
跳板机服务器 | jumpserver | 10.0.0.71 | 172.16.1.71 | jumpserver |
监控服务器 | zabbix | 10.0.0.72 | 172.16.1.72 | zabbix |
缓存服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
- 部署好一台web服务器
- 进行访问测试
- 批量部署多台web服务器
- 将nginx配置文件进行分发
- 将站点目录分发给所有主机
负载均衡服务器部署
编写nginx负载服务配置文件并重启
upstream 1997sty {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name www.1997sty.com;
location / {
proxy_pass http://1997sty;
}
}
upstream
- nginx负载均衡模块: ngx_http_upstream_module
proxy_pass
- nginx反向代理模块: ngx_http_proxy_module
- 配置完web服务器和本地hosts文件后直接访问,会通过负载均衡服务器会将请求分发到三台web服务器
nginx负载均衡模块修改其他参数
实现不同调度功能
upstream 1997sty {
server 10.0.0.7:80 weight=3;
server 10.0.0.8:80 weight=2;
server 10.0.0.9:80 weight=1;
}
- 访问会根据配置的数值来分配请求,请求6次(分别为3次10.0.0.7,2次10.0.0.8,1次10.0.0.9)
实现热备功能
upstream 1997sty {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 backup;
}
- 当所有其他服务器不可用时,负载均衡就会把请求发送给热备web服务器
定义最大失败次数和失败之后重发的间隔时间
#默认是1次和10秒
upstream 1997sty {
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80 max_fails=5 fail_timeout=5s;
}
实现不同调度算法
- 根据ip计算出一个值,根据这个值来分配访问的服务器,每次访问请求都会发送到同一台服务器上,实现了会话保持
upstream 1997sty {
ip_hash;
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
nginx反向代理模块修改其他参数
访问不同的网站地址,不能显示不同的网站页面
- 在同一台web服务器中,如果有多个虚拟主机,使用反向代理时需要添加参数
#使负载均衡访问web服务器的host信息修改为客户端访问的host信息
server {
listen 80;
server_name www.1997sty.com;
location / {
proxy_pass http://1997sty;
proxy_set_header Host $host;
}
}
获取访问客户端地址信息
- 使用负载均衡后,web服务器日志中的地址信息为负载均衡服务器的地址,添加参数获取客户端真实地址
server {
listen 80;
server_name www.1997sty.com;
location / {
proxy_pass http://1997sty;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
- 在web服务器日志部分的配置中,默认的
$http_x_forwarded_for
参数可以接收来自负载均衡提供的客户端的地址信息
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
负载均衡设置出现错误页面
- 不会展示超时,请求错误之类的页面,如果返回了这些状态码,反向代理会去请求其他的web服务器
server {
listen 80;
server_name www.1997sty.com;
location / {
proxy_pass http://1997sty;
proxy_next_upstream error timeout http_404 http_502 http_403;
}
}
最后一次更新于2020-01-15 13:39
0 条评论