创建软链接
ln -s 链接地址 快捷方式
注意:链接地址要用绝对路径
删除链接的时候不能用rm -rf 会把原文件的所有数据都删除了!
不管是链接地址是文件还是目录,删除软链接就用:
rm -f ……
对称算法有:AES、DES,主要应用在单机数据加密。
非对称算法有:RSA、DSA,主要应用在网络数据加密。
信息摘要:MD5、sha256,主要应用在数据完整性校验、数据秒传等。
对文加进行哈希运算:
md5sum 文件
echo '字符串' | md5sum
同样的文件内容计算出来的哈希值一定一样(和文件名无关,只于内容相关)
哈希取余算法:
$(echo 'IP地址' | md5sum) % 服务器个数
这样可以根据web的ip地址进行分配,同样的ip取完哈希值后进行判断
port信息
ssh | 22 |
ftp | 20,21 |
dns | 53 |
dhcp | 67 |
http | 80 |
https | 443 |
mysql | 3306 |
php | 9000 |
web集群
多个服务器,一起提供web服务,其中一个调度,多个作为网站服务器,一般调度服务器是用nginx,网站服务器apache和nginx都可以
调度服务器:
upstream 集群名 # 定义集群,然后在server虚拟主机中调度
{
server ip 配置属性; # 集群配置,让什么ip加入集群中
ip_hash; # 根据哈希取余算法进行分配,一条配置就完成了哈希取余算法调配的所有操作
}
server{
location{
proxy_pass http://集群名; # 调用上面定义的集群
}
}
配置属性:(多个配置用空格分割)
weight 设置服务器权重值,默认值为1,按照所占百分比,判断出现的次数,权重大的先执行
max_fails 设置最大失败次数,也就是,判断连接超过多少次算失败,达到这个失败次数后判定这个服务器不可用
fail_timeout 设置失败超时时间,单位为秒,判断服务器不可用后隔多少时间重新尝试连接
down 标记服务器已关机,不参与集群调度
注意:
1. 对IP进行哈希取余,只是针对ip的第一个字段进行哈希计算取余。
2. 配置ip_hash对导致权重没有实际作用
http{
upstream webs{
ip_hash;
server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=120;
server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=50;
server 192.168.2.150 down;
}
server {
listen 80;
server_name www.lyu.com;
location / {
proxy_pass http://webs;
index index.html index.htm;
}
}
创建一个集群叫webs,里面有三个web服务器,其中
IP为192.168.2.100的服务器,他的权重是1,也是每三次访问中,第三次是调度到这个服务器,然后如果有一次连接失败就判定服务器不可用,每隔120s判定一次;
IP为192.168.2.200的服务器,他的权重是2,也是每三次访问中,前两次是调度到这个服务器,然后如果有两次连接失败就判定服务器不可用,每隔50s判定一次;
IP为192.168.2.200的服务器,他不使用。
不过因为配置中有ip_hash 会根据ip的前三位进行取余调度,所以,所有的100段的所有ip主机都是到一个服务器,这会使之前的权重没有作用。
TCP/IP代理服务器
ssh -p 端口 IP 以指定的端口进行访问
编译安装必须要使用--with-stream的模块,但是只有nginx的1.9版本后才有这个功能
要注意在做代理的时候监听端口不能和原先服务一样的端口,因为这样原来的服务占用端口,导致服务起不来
客户端在访问的时候要标明段口号
基本格式:(在http外,进行修改,因为这不是web网页)
stream {
upstream 集群名 {
server IP:段口号; //后端SSH服务器的IP和端口
}
server {
listen 监听的段口号; //Nginx监听的端口
proxy_pass 集群名;
}
}
针对数据库服务器的代理:
数据库的代理服务和普通的其他服务不一样,默认mysql是不能以root身份远程控制的,所以必须赋权创建一个用户,用于远程
在数据库界面中: grant all on *.* 用户名@'%' identified by '密码'
检查是否配置成功: mysql -h 192.168.4.55 -P12345 -uyzy -p
常见问题以及解决方案:
为提高服务器的并发良,在原配置文件中修改:
worker_processes 2; //与CPU核心数量一致
events{
worker_connections 65535; //每个worker最大并发连接数
use epoll; //使用较优算法
}
调整内核信息:
查看:ulimit -a
其中的 open files 关乎并发量,他有软限制和硬限制;
软限制每个用户都可以修改,硬限制只能是root才能修改;
软限制是实际限制并发的数值,硬限制是限制软限制的大小的值。
ulimit -Hn 100000 //设置硬限制(临时规则)
ulimit -Sn 100000 //设置软限制(临时规则)
永久配置,修改配置文件:/etc/security/limits.conf,去掉#注释符号,进行配置,其中这四列分别代表:
对什么生效 ,格式(soft软,hard硬 ),需要限制的项目,限制的值
#<domain> <type> <item> <value>
#
#* soft nofile 0
#* hard nofile 10000
414报错
出现414标示是客户端的输入的地址超过了服务器设置的缓存大小,修改方法就是,修改nginx里的内存占用即可
http {
include mime.types;
default_type application/octet-stream;
client_header_buffer_size 1k; # 修改默认开启的缓存大小
large_client_header_buffers 4 4k; # 默认缓存不够时,开启
……
}
设置缓存保留时间:
在sever里面,如果访问了图片或者视频,就设置缓存,,所以正则匹配表达,以jpg等结尾的文件进行缓存
server {
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 30d; //定义客户端缓存时间为30天
}
}
其中的 ~* 代表正则匹配,并且不区分大小写
对报错的页面,进行美化修改:
错误编号 | 含义 |
200 | 正常 |
301 | 永久重定向 |
302 | 临时重定向 |
304 | 重定向到本机,指的缓存信息 |
401 | 用户名和密码错误 |
403 | 禁止访问,也就是IP被拒绝访问了 |
404 | 文件不存在 |
414 | 请求的URI地址栏太长 |
500 | 服务器内部错误 |
502 | 集群中,调度器无法和后台服务器链接,也就是集群有问题 |
server{
error_page 错误序号1 错误序号2 …… /文件路径和目录
}
其中这个 / 指的是网页根目录,也就是location中的root所指目录(root中的相对路径是nginx安装配置的时候配置的目录下的路径)