Nginx介绍及使用

Nginx介绍

Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,并发能力在同类型的网页服务器表现较好,其中百度,京东,新浪,网易,腾讯,淘宝等大型网站都有使用Nginx.
内存:不到2M
并发能力强:3-5万次/秒 而tomcat在理想情况下才150-220/秒.

Nginx命令操作

可以直接在本地以管理员身份运行nginx.exe,或通过命令行启动.Nginx每次启动都会生成2个进程:主进程(提供nginx反向代理服务)和守护进程(防止主进程意外关闭).
在nginx根目录下执行

start nginx     启动nginx,即使不成功也不会报错!!!
nginx -s reload    重启nginx,如果配置文件有错,则会显示报错信息
nginx -s stop      停止nginx

Nginx 配置文件介绍

Nginx配置文件为nginx.conf,一般我们在http里配置server{}我们的需求即可

http {
		server {
    		#本地访问的地址
       		 listen       80;    # 监听端口号
        	server_name  localhost;   # 监听的服务名称
	
			#反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置
			#  / 请求访问的根目录
        	location / {
	   		 #  root关键字   反向代理文件目录
             root   html;
	    	 #	index关键字   默认跳转页面
            index  index.html index.htm;
        	}
        }
	}

然后在浏览器访问localhost:80能看到如下页面即代表安装成功
在这里插入图片描述

上传图片回显

修改配置文件nginx.conf,然后重启nginx

# 配置图片服务器代理   个别windows中"_-"字符可能不识别
   server {
	listen		80;
	server_name	image.jt.com;

	location / {
		
		#映射到目录中
		root    D:\JT-SOFT\images;
	}
 
   }

如果没有买域名是不能直接反向代理的,当我们可以更改本地的hosts文件.

编辑HOSTS文件

在这里插入图片描述

利用switchHosts编辑文件(其他方式编辑也行)

在这里插入图片描述

如修改hosts文件权限

如果不能修改,或修改后不能运行成功,就修改hosts文件权限
在这里插入图片描述

实现域名代理

要求: 用户通过http://manage.jt.com:80 访问localhost:8091服务器.
在http里配置

  # 配置域名代理
   server {
	listen		80;
	server_name	manage.jt.com;

	location / {
		
		#代理的是服务器地址
		proxy_pass   http://localhost:8091;
		
	}
 
   }

代理机制

反向代理

反向代理服务器位于用户与目标服务器之间,但对于用户来说,反向代理服务器就是目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源.同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
总结:
①反向代理服务器位于目标服务器和用户之间.
②对于用户而言,反向代理服务器就是目标服务器.
③用户访问时根本不知道真实的的服务器资源是谁,保护了真实服务器资源的信息.
④反向服务器一般是服务器代理,保护真实服务器信息.
在这里插入图片描述

正向代理(扩展)

正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
知识点:
1).代理服务器位于用户与服务器之间
2).用户发起请求时,清楚的知道自己访问的真实服务器是谁.
3).代理服务器将用户的请求转交给服务器获取数据.
4).正向代理是客户端代理,保护了用户的信息.
在这里插入图片描述

Nginx负载均衡策略

什么是负载均衡

在分布式条件下,为了提高用户请求的相应能力,准备多台服务器,一起抗击高并发,需要用户通过同一个网址访问不同的服务器的技术称之为负载均衡机制。

准备多台Tomcat服务器

准备3台Tomcat·服务器,并且端口号依次为8081/8082/8083,之后完成项目在windows部署

创建MsgController

目的:动态的获取当前服务器是哪个端口号信息

@RestController		
public class MsgController {
	
	@Value("${server.port}")
	private int port;
	
	//主要获取当前访问服务器的端口号信息!!!!
	@RequestMapping("/getPort")
	public String getMsg() {
		
		return "您当前访问的服务器端口号:"+port;
	}
}

项目打包

依次修改yml中的端口号为8081/8082/8083,并依次打包下来
打包步骤:
在这里插入图片描述
在这里插入图片描述
然后复制粘贴改名到本地上

在这里插入图片描述
在本地目录cmd下运行项目:java -jar 8081.war,访问localhost:8081

项目发布的问题

通过命令发布项目之后,浏览器访问速度较慢(不正常)
解决方法一:直接关闭当前dos命令窗口
解决方法二:ctrl + c方式 释放资源

Nginx实现负载均衡

目标:通过http://manage.jt.com 方式 依次访问8081/8082/8083服务器.

负载均衡策略—轮询

说明:根据配置文件的顺序,依次访问tomcat服务器,配置如下

# 配置域名代理
   server {
	listen		80;
	server_name	manage.jt.com;

	location / {
		
		#代理的是服务器地址
		#proxy_pass   http://localhost:8091;   
		proxy_pass    http://jtW;
	}
 
   }

   #定义多台tomcat服务器   1.轮询策略
   upstream  jtW {
	server localhost:8081;
	server localhost:8082;
	server localhost:8083;
   }

负载均衡策略—权重

权重策略:让性能更优的服务器处理更多的处理请求。

#定义多台tomcat服务器   1.轮询策略    2.权重策略
   upstream  jtW {
	server localhost:8081 weight=6;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
   }

负载均衡策略—IPHASH策略

说明: 如果需要用户与后端服务器进行绑定时,可以使用IPhash策略.
案例A: 有时用户可能做登录操作,可能将用户信息保存到session对象 中,如果这时采用轮询/权重的策略,可能访问其他的业务服务器.导致用户频繁的登录.
配置信息:

#定义多台tomcat服务器   1.轮询策略    2.权重策略
   upstream  jtW {
   	ip_hash;
	server localhost:8081 weight=6;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
   }

IPHASH原理:
在这里插入图片描述
补充知识:
1).IPHASH一般只做测试时用.
2).使用IPHASH可能造成负载不均的现象. 某些服务器负载压力过高.有宕机的风险.
3).使用IPHASH时,如果后端服务器宕机,则直接影响用户的使用.
4).工作中如果需要实现用户信息的共享,一般采用SSO的方式进行.
用户只需一次登录就可以访问所有相互信任的应用系统

关于Nginx属性配置

Nginx工作原理说明

默认情况下,Nginx会按照指定的负载均衡规则访问服务器。如果访问的服务器又出现了问题,那么则会访问下一台服务器。但是随着负载均衡的继续,还会继续访问故障机,导致效率低。

down属性

说明:如果遇到某台Tomcat服务器宕机,则可以通过down属性标识故障机,则Nginx永远不会主动访问故障机。

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
   upstream  jtW {
   	#ip_hash;
	server localhost:8081 weight=6  down;
	server localhost:8082 weight=3;
	server localhost:8083 weight=1;
   }
backup属性

说明:backup的作用标识备用机,一般情况下不使用,当遇到主机全部宕机/遇忙时,这是备用机才会生效。

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
   upstream  jtW {
   	#ip_hash;
	server localhost:8081 weight=6  down;
	server localhost:8082 weight=3  down;
	server localhost:8083 weight=1  backup;
   }
设定访问超时

属性说明:
1.max_fails=1允许访问失败的最多次数
2.fail_timeout=60s失败的超时时间(理解为时间区间)
当服务器宕机时,这是配置文件还没有被标识为down时。开启了高可用的机制,只要失败的次数超过了最大失败次数,则在指定的时间周期之内,不会再洗访问故障机。

#定义多台tomcat服务器   1.轮询策略    2.权重策略    3.ip_hash策略
   upstream  jtW {
   	#ip_hash;
	server localhost:8081 max_fails=1 fail_timeout=60s;
	server localhost:8082 max_fails=1 fail_timeout=60s;
	server localhost:8083 max_fails=1 fail_timeout=60s;
   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值