目录
简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
摘自百度百科:nginx_百度百科
Nginx实际应用场景
- 微服务网关入口 实现对服务转发 根据域名路由到真实的服务;
- 负载均衡 能够对集群的节点实现负载均衡;
- 静态服务器 比Tomcat性能高很多,可以存放静态资源;
- 反向代理 客户端使用Nginx转发到真实服务器访问,从而保证真实服务安全性;
- 保护网站 nginx+lua实现对请求实现限流、熔断;
Windows环境快速入门
- 下载winDows安装包
- 解压当前目录
- 双击nginx.exe
- Nginx默认端口号为80
Nginx目录结构介绍
Conf 配置文件 (nginx核心配置文件 nginx.conf)
Contrib 存放一些实用工具
Docs 存放文档
Html 存放Html
Logs 存放日志文件
Temp 临时文件
基于Nginx存放Html静态资源
server {
listen 80;
server_name localhost;
#访问端口为80 location为/ 访问的html文件目录,找到index.html页面访问
location / {
root html;
index index.html index.htm;
}
}
反向代理与正向代理区别
正向代理:使用正向代理,其作用是隐藏用户真实行为。
反向代理:客户端请求达到代理服务器 在通过代理服务器转发到真实服务器,正向代理与反向代理区别:正向代理隐藏用户的真实行为、反向代理隐藏真实服务器
基于Nginx实现反向代理
C:\Windows\System32\drivers\etc host文件中新增
server {
listen 80;
server_name www.your.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
基于Nginx实现负载均衡
五种负载均衡策略
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
配置负载均衡策略
Nginx负载均衡提供上游服务器(真实业务逻辑访问的服务器),负载均衡、故障转移、失败重试、容错、健康检查等。
当上游服务器(真实业务逻辑访问的服务器)发生故障时,可以转移到其他上游服务器(真实业务逻辑访问的服务器)。
Upstream Server配置
upstream 主要配置如下:
IP地址和端口号:配置上游服务器的IP地址和端口
###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮训机制
upstream backServer{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name www.your.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
index index.html index.htm;
}
}
IP地址和端口号:配置上游服务器的IP地址和端口
注意:负载均衡效果谷歌浏览器需要直接从浏览器中访问才可以生效
###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮训机制
upstream backServer{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}
server {
listen 80;
server_name www.mayikt.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
index index.html index.htm;
}
}