1.简介
Nginx 是⼀款⾼性能的 http 服务器/反向代理服务器及电⼦邮(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊⼽尔·⻄索夫(Igor Sysoev)所开发,官⽅测试 nginx 能够⽀⽀撑 5 万并发链接,并且cpu、内存等资源消耗却⾮常低,运⾏⾮常稳定。
它比tomcat厉害得多,nginx加上插件,还会变得更厉害(10万并发)
2.应用场景
web 服务.
负载均衡 (反向代理)
web cache(web 缓存)
3.nginx静态网站部署
静态网站部署
配置虚拟主机:端口绑定、域名绑定
4.nginx反向代理
反向代理和正向代理的区别就是:正向代理代理客户端,反向代理代理服务器。
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
下面以图示描述正向代理、反向代理区别:
正向代理:
反向代理:
理解这两种代理的关键在于代理服务器所代理的对象是什么,正向代理代理的是客户端,我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器,作为客户端的我们是无法感知到服务器的真实存在的。
总结起来还是一句话:正向代理代理客户端,反向代理代理服务器
具体的配置和使用详见课堂笔记pdf文件。
5.nginx负载均衡
负载均衡建⽴在现有⽹络结构之上,它提供了⼀种廉价有效透明的⽅法扩展⽹络设备和服务器的带宽、增加吞吐量、加强⽹络数据处理能⼒、提⾼⽹络的灵活性和可⽤性。
负载均衡,英⽂名称为Load Balance,其意思就是分摊到多个操作单元上进⾏执⾏,例如Web服务器、FTP服务器、企业关键应⽤服务器和其它关键任务服务器等,从⽽共同完成⼯作任务。
使用上,其实主要就是多建几个容器用于轮循,然后修改一下Nginx配置⽂件:lb.conf。
upstream tomcat-huike {
server 192.168.220.12:8080;
server 192.168.220.12:8081;
server 192.168.220.12:8082;
}
server {
listen 80; # 监听的端⼝
server_name www.huike.com; # 域名或ip
location / { # 访问路径配置
# root index;# 根⽬录
proxy_pass http://tomcat-huike;
index index.html index.htm; # 默认⾸⻚
}
比如用docker创建三个tomcat容器,三台服务器出现的概率将各为33.3333333%,交替显示。
如果其中⼀台服务器性能⽐较好,想让其承担更多的压⼒,可以设置权重。
⽐如想让端口为8081服务器的出现次数是其它服务器的2倍,则修改配置如下:
upstream tomcat-travel {
server 192.168.177.129:8080;
server 192.168.177.129:8081 weight=2;
server 192.168.177.129:8082;
}