nginx的反向代理及负载均衡
2017-07-28 16:18
246 查看
1.1 Nginx实现虚拟机
可以实现在同一台服务运行多个网站,而且网站之间互相不干扰。同一个服务器可能有一个ip,网站需要使用80端口。网站的域名不同。
区分不同的网站有三种方式:
1、ip区分
2、端口区分
3、域名区分
1.1.1 Ip区分虚拟主机
1、将/etc/sysconfig/network-scripts/ifcfg-eth0文件复制一份,命名为ifcfg-eth0:1修改其中内容:
DEVICE=eth0:1
IPADDR=192.168.25.103
其他项不用修改
2、重启系统
1.1.2 配置nginx基于ip地址的虚拟主机
1.1.1.2 Nginx的配置文件
editplus 连接ftp 编辑比较方便编辑 nginx.conf 配置文件
server {
listen 80;
server_name 192.168.238.129;
location / {
root html;
index index.html index.htm;
}
server {
listen 80;
server_name 192.168.238.100;
location / {
root html-100;
index index.html index.htm;
}
一个Server 就是一个虚拟主机
配置完以后,重启服务器 重启nginx
重启nginx
启动nginx
1.1.1.3 基于ip的虚拟主机配置
server {listen 81;
server {
listen 82;
1.1.3 基于域名的虚拟主机
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
修改虚拟主机的配置
server {
listen 80;
server_name www.liyang.com;
location / {
root html-www;
index index.html index.htm;
}
网页html-www 在nginx 目录下
修改配置文件后,需要nginx重新加载配置文件。
** 穿插 添加订单时bug ,没有录入用户昵称等信息页面没有传递用户信息
创建订单时却 用户信息,创建订单会经过一个拦截器,判断用户是否登录,所以能够创建订单,用户一定是登录了,先经过拦截器,判断登录进入创建请求,是同一个请求,所以1、在拦截器中将获取到的user信息 设置到attabuite中2.、在controller中 getAttrbute 信息 取到user 方案:
方案2 因为用户有购物车,购物车信息存在在cookie中,可以从cookie中取用户token , 然后调用sso服务,根据toekn取用户信息
2.1.1 反向代理
2.1 使用nginx实现反向代理
Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁。2.2.1 安装tomcat
在一个虚拟机上创建两个tomcat实例,模拟多个服务器。2.2.2 需求
通过访问不同的域名访问运行在不同端口的tomcat2.2.3 Nginx的配置
upstream tomcatserver1 {
server 192.168.238.129:8080;
server 192.168.238.129:8081; // 负载均衡 访问tomcatserver1 1次访问进入8080 另外一次进入8081
}
upstream tomcatserver2 {
server 192.168.238.129:8081;
}
server {
listen 80;
server_name 8080.www.liyang.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1; 转发
index index.html index.htm;
}
}
server {
listen 80;
server_name 8081.www.liyang.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2; index index.html index.htm;
}
}
如果在同一个域名下有多台服务器提供服务,此时需要nginx负载均衡。
3.1 什么是负载均衡
负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
3.2 需求
nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器。nginx负载均衡服务器:192.168.238.129
tomcat1服务器:192.168.238.129:8080
tomcat2服务器:192.168.238.129:8081
upstream tomcatserver1 {
server 192.168.238.129:8080;
server 192.168.238.129:8081; 增加一台服务器 // 负载均衡 访问tomcatserver1 1次访问进入8080 另外一次进入8081
}
节点说明:
在http节点里添加:
#定义负载均衡设备的 Ip及设备状态
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
在需要使用负载的Server节点下添加
proxy_pass http://myServer;
upstream 每个设备的状态:
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
1 Nginx的高可用
解决高可用的方案就是添加冗余。nginx的高可用使用keepalived+nginx实现
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到
相关文章推荐
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx的虚拟主机配置和反向代理,负载均衡
- Nginx的反向代理与负载均衡
- Linux -- Nginx 负载均衡和反向代理
- nginx实现反向代理及负载均衡
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用总结
- nginx简单实现反向代理和负载均衡
- Nginx之反向代理和负载均衡(模拟)
- Nginx简单实现反向代理和负载均衡
- 基于nginx和tengine的tcp反向代理,负载均衡 安装和配置
- Nginx: Nginx反向代理、负载均衡、缓存、URL重写及读写分离
- nginx的配置、虚拟主机、负载均衡和反向代理
- Nginx反向代理与负载均衡
- 读《实战nginx-取代Apache的高性能web服务器》-"Nginx HTTP 负载均衡和反向代理的配置与优化"精华纪要
- Nginx七层反向代理和负载均衡
- Nginx 的反向代理与负载均衡
- nginx的配置、虚拟主机、负载均衡和反向代理(1)
- Nginx反向代理和负载均衡部署指南
- 在ubuntu上面配置nginx实现反向代理和负载均衡