7层网络负载均衡
负载均衡
用户认证访问
反向代理
安装Tengine
官网下载,linux安装
安装c语言编译器GCC
yum install gcc openssl-devel pcre-devel zlib-devel -y
解压缩
tar -zxvf tengine
进入目录
./configure --prefix=/usr/local/tengine
安装
make && make install
进入安装目录/usr/local/tengine
sbin可执行程序
./nginx
停掉服务
ps-ef |grep nginx
kill -9 3988
kill -9 3987
启动脚本
worker_processes 1 进程数1
events事件
worker_connections 1024 1个woker对应得连接数1024
cat /proc/sys/fs/file-max 查看系统打开文件句柄得最大个数,对应上面得1024
http模块
include 引入配置文件
default_type 引入文件类型
sendfile on 文件传输得异步执行,异步网络io,生产数据太快解析不过来就off
keepalive_timeout 65 连接超时
gzip 压缩
server模板,一个server对应一个主机
listen 80; 监听端口号
server_name localhost 主机名,域名
location /{ 虚拟目录 / 是匹配规则
root html; 跟目录
index index.html index.htm; 默认网页
}
location = / {
[ configuration A ]
}
location / {
[ configuration B ]
}
location /documents/ {
[ configuration C ]
}
location ^~ /images/ {
[ configuration D ]
}
location ~* .(gif|jpg|jpeg)$ {
[ configuration E ]
}
反向代理服务器:
Proxy_pass http://192.168.43.152/
用户认证访问
模块ngx_http_auth_basic_module 允许使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问。
location ~ (.*).avi$ {
auth_basic “closed site”;
auth_basic_user_file conf/users;
}
httpd-tools
yum install httpd
htpasswd -c -d /usr/local/users zhangyang
nginx访问状态监控
location /basic_status {
stub_status on;
}
upstream
反向代理配合upstream使用
upstream httpds {
server 192.168.43.152:80;
server 192.168.43.153:80;
}
weight(权重)
upstream httpds {
server 127.0.0.1:8050 weight=10 down;
server 127.0.0.1:8060 weight=1;
server 127.0.0.1:8060 weight=1 backup;
}
down:表示当前的server暂时不参与负载
weight:默认为1.weight越大,负载的权重就越大。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
max_conns
可以根据服务的好坏来设置最大连接数,防止挂掉,比如1000,我们可以设置800
upstream tomcats{
server 127.0.0.1:8050 weight=5 max_conns=800;
server 127.0.0.1:8060 weight=1;
}
max_fails、 fail_timeout
max_fails:失败多少次 认为主机已挂掉则,踢出,公司资源少的话一般设置2~3次,多的话设置1次
max_fails=3 fail_timeout=30s代表在30秒内请求某一应用失败3次,认为该应用宕机,后等待30秒,这期间内不会再把新请求发送到宕机应用,而是直接发到正常的那一台,时间到后再有请求进来继续尝试连接宕机应用且仅尝试1次,如果还是失败,则继续等待30秒…以此循环,直到恢复。
upstream httpds {
server 127.0.0.1:8050 weight=1 max_fails=1 fail_timeout=20;
server 127.0.0.1:8060 weight=1;
}
http_proxy 本地磁盘缓存
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {
set $upstream http://ip:port
location / {
proxy_cache my_cache;
proxy_pass $upstream;
}
}
/path/to/cache #本地路径,用来设置Nginx缓存资源的存放地址
levels #默认所有缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=1:2,Nginx为将要缓存的资源生成的key为f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第2-3位6d作为两级的子目录,也就是该资源最终会被缓存到/path/to/cache/0/6d目录中
key_zone #在共享内存中设置一块存储区域来存放缓存的key和metadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key
max_size #最大cache空间,如果不指定,会使用掉所有disk space,当达到配额后,会删除最少使用的cache文件
inactive #未被访问文件在缓存中保留时间,本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件
use_temp_path #如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝
proxy_cache #启用proxy cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存。
Memcached
安装
安装libevent
安装memcached
可以用yum方式安装 yum –y install memcached
启动memcached
memcached -d -m 128 -u root -l 192.168.43.151 -p 11211 -c 256 -P /tmp/memcached.pid
memcached-tool 192.168.2.51:11211
参数解释:
-d:后台启动服务
-m:缓存大小
-p:端口
-l:IP
-P:服务器启动后的系统进程ID,存储的文件
-u:服务器启动是以哪个用户名作为管理用户
自动索引
location /art {
alias /var/data/www1/;
autoindex on;
}
location / {
proxy_pass http://192.168.150.11:803;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|htm|css|js)$ {
root /var/data/www1/;
}
私钥加密,公钥解密
把解密算法和数据传给客户端
https: 80端口传输数据
443端口传输证书
数据是有服务器公钥保证安全的,
服务器的公钥是由CA 保证安全的
CA保证ca的公钥不在传输过程中被串改
certmgr.msc
key 私钥 = 明文 自己生成的
csr 公钥 = 由私钥生成
crt 证书 = 公钥 + 签名
下载
http://slproweb.com/products/Win32OpenSSL.html
生成私钥
genrsa
制台输入 genrsa,会默认生成一个 2048 位的私钥
openssl genrsa -des3 -out server.key 1024
由私钥生成公钥
openssl req -new -key c:/dev/my.key -out c:/dev/my.csr
openssl req -new -key server.key -out server.csr
查看证书
Common Name,这里输入的域名即为我们要使用 HTTPS 访问的域名
req -text -in c:/dev/my.csr -noout
openssl rsa -in server.key -out server.key.unsecure
数字签名验证发送者的身份和消息的完整性
数字证书是由第三方CA机构颁发的,保证消息没有被篡改