高性能的http服务代理服务器和反向代理服务器,能支持50000个并发连接数
正向代理
明确买家是谁,让代理人去联系目标
例如局域网内的客户端想要访问局域网外的internet,则需要代理服务器来访问,这种代理就是正向代理
反向代理
客户端不需要任何配置就可以访问,只需要将请求发送到代理服务器,有代理服务器去选择目标服务器在返回给客户端
负载均衡
将请求分发到不同服务器、负载分发到不同服务器,就是负载均衡
访问一个ip 默认是80 (nginx) tomcat 是8080
动静分离
为了加快网站的解析速度、将动态和静态页面有不同服务器来解析,降低原来单个服务器的压力
安装
进入压缩目录执行./configure
执行make && make install (编译安装)
安装完成后多一个local/nginx 在nginx有sbin 启动脚本
./nginx
访问:http://ip:80 ->welcome to nginx
查看开放的端口:firewall-cmd –list-all
添加端口:
Firewall-cmd –add-service=http -permanent
Sudo firewall-cmd –add-port=80/tcp –permanent
重启防火墙:firewall-cmd -reload
Nginx 相关命令:
1 进入到nginx的目录 /usr/local/nginx/sbin
2 查看nginx的版本号:./nginx -v
3 启动nginx ./nginx
4 关闭nginx ./nginx -s stop
5 重加载 ./nginx -s reload (重新加载配置文件 nginx.conf)
Nginx的配置文件组成
第一块:全局块
从配置文件开始到events块之间的内容、主要设置一些影响nginx服务器运行的配置指令,比如 worker_process 1; 值越大,可以支持的并发量也越多
第二部分:events
涉及的指令主要影响nginx服务器与用户的网络连接数
比如 worker connections 1024 支持的最大连接数
第三部分:http块 (配置最多的地方)
http全局块
server块
举例:
浏览器访问www.123.com
Nginx.conf 配置如下图:
proxy_pass 反向代理的地址
例如:要实现
http://127.0.0.1:9091/edu 访问tomcatl1 (127.0.0.1:8080)
http://127.0.0.1:8080/vod 访问tomcatl2 (127.0.0.1:8081)
注意:开放端口 9091 8081 8080 (firewall)
在 /usr/src/tomcat-xx/apache-tomcat-xx/webapps/ 创建 edu目录 然后放一个a.html文件
这时访问 http://$Ip:8081/edu/a.html 就能看到
这是nginx.conf 里要改的内容
~ /edu/ #正则表达式,请求路径包含 edu时就会转发到 xxx:8080
关于location的说明:
负载均衡:
访问http://192.168.17.129/edu/a.html
Upstream myserver{
Server 192.168.17.129:8080;
Server 192.168.17.129:8081;
}
策略:
轮询(默认)、权重、ip_hash、fair(第三方)
轮询:服务器如果down掉,自动剔除
权重:weight 权重越高,分配的客户端越多
Upstream myserver{
Server xxx weight=1;
Server xxx weight=10;
}
Ip_hash:每个访客固定一个后端服务器、可以解决session问题
Upstream myserver{
Ip_hash;
Server xxx;
Server xxx;
}
Fair:按后端服务器响应时间来分配请求、响应时间断的优先分配
Upstream myserverr{
Server xxxx;
Server xxxx;
Fair;
}
动静分离:
Nginx处理静态页面、tomcat处理动态页面:
一:把静态文件独立成单独的域名放在独立的服务器上
另一种就是动态和静态文件混合一起发布,通过nginx来分开,通过location指定不同的后缀名实现不同的转发请求、通过expires 参数设置可以使浏览器缓存过期时间,减少与服务器之间的请求和流量;设定一个过期时间,也就是无需去后端服务验证,直接通过浏览器确认是否过期即可,不会残生额外的流量
/data/image/01.jpg
/data/www/a.html
Autoinde on; // 列出返回目录
最终测试:
http://192.168.17.129/image/01.jpg
http://192.168.17.129/www/a.html
高可用集群
需要两台服务器 192.168.17.129 192.168.17.131 (nginx)
这两台都要安装nignx、keepalived
Yum -y install keepalived
安装好之后 修改/etc/keepalived/keepalived.conf 文件
分别启动nignx和keepalived
./nginx systemctl start keepalived.service
补充:
关闭nginx服务
1 kill `cat /usr/local/nginx/logs/nginx.pid` //文件中有个pid号
2 nginx -s reload //重载
Session共享:
无论登录那一台ip,session是一致的
1 内存数据库(memcache)
1 修改服务器和数据库的关联关系