Nginx代理

代理

反向代理

用户发起正常的url请求地址,经过代理将路径进行转化,代替用户去请求真实资源的过程.称之为反向代理。

正向代理

正向代理(forward proxy): 是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。代理的是客户端。

Nginx介绍

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

Nginx官网:https://nginx.org/en/download.html

Nginx安装

将nginx安装文件导入本地磁盘要求,不要放置C盘/不要有中文路径.之后将文件解压.

注意事项:

  1. nginx启动会占用80端口!!!
    如果启动异常 请检查tomcat环境变量配置.
    高级系统设置 path路径中检查tomcat是否配置.
  2. Nginx只能启动一次.不能多次启动.如果启动多次.则nginx之前正常的启动将被破坏. 启动/关闭.

Nginx启动说明

起步阶段

第一次启动时以超级管理员身份运行.目的获取权限.

关于进程项说明

  • 说明:每次启动nginx都会启动2个进程.
  • 守护进程:防止主进程意外关闭.
  • 主进程: nginx主要服务项.
  • 手动关闭方式: 先关闭守护再关闭主进程.

Nginx命令

前提:命令执行时需要在nginx的根目录中运行!!!

  1. 启动命令 start nginx
  2. 关闭命令 nginx -s stop
  3. 重启命令 nginx -s reload 必须先开再重启

Nginx反向代理配置

入门案例

server {
        listen       80;    		#要求监听80端口
        server_name  localhost;   	#监听域名

		#具体反向代理的配置信息
        location / {
        	#root是关键字   代表文件夹
            root   html;
            #index是关键字  代表系统默认访问页面
            index  index.html index.htm;
        }
}

实现本地图片的反向代理

需求:将域名为image.jt.com----转化为具体文件路径D:\1-JT\images

  1. 编辑nginx配置文件:

    #1.图片服务器
    server {
    listen 80;
    server_name image.jt.com;

     	location / {
     		#代理路径
     		root  D:/1-JT/images;
     	}
     }
    
  2. 遇到问题
    因为image.jt.com这个域名我们没有购买.如果只有本机自己测试时使用.则可以通过修改hosts文件实现该功能.

关于Hosts文件说明

说明:由于本机需要某些特定的环境作为测试.

则一般在hosts文件中配置域名与IP的映射关系.

文件路径: C:\Windows\System32\drivers\etc

修改hosts文件

#127.0.0.1 localhost

127.0.0.1 www.164.com

127.0.0.1 image.jt.com

127.0.0.1 manage.jt.com

127.0.0.1 www.jt.com

127.0.0.1 sso.jt.com

127.0.0.1 cart.jt.com

127.0.0.1 order.jt.com

Nginx实现负载均衡

轮询策略

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

#准备tomcat_windows集群 默认:轮询策略
	upstream jtWindows {
		server localhost:8091;
		server localhost:8092;
		server localhost:8093;
	}
	
	#配置后台管理服务器
	server {
		listen 80;
		server_name manage.jt.com;

		location / {

			#代理服务器路径
			proxy_pass http://jtWindows;
		}
	}

权重策略

说明:根据物理服务器配置,让高性能服务器尽可能多分配请求.

配置信息:

	#准备tomcat_windows集群 默认:轮询策略 2.权重策略
	upstream jtWindows {
		server localhost:8091 weight=6;
		server localhost:8092 weight=3;
		server localhost:8093 weight=1;
	}

IPHASH策略

说明:使用IPhash可以将用户与服务器绑定.实现了数据的共享

但是:一般很少使用.做测试或者小规模使用可以.大型公司禁止使用.

配置步骤:

#准备tomcat_windows集群 默认:轮询策略 2.权重策略 3.了解 IPhash策略

upstream jtWindows {

ip_hash;

server localhost:8091 weight=6;

server localhost:8092 weight=3;

server localhost:8093 weight=1;

}

缺点:

1.如果后台服务器宕机.则影响部分用户无法访问服务器.

2.使用iphash会造成严重的负载不均现象.

Nginx运维配置项

down属性

问题说明:当nginx实现负载均衡时,当后台服务器宕机,则nginx会等待超时时间.之后访问下一台服务器.但是每次周期都会去访问故障机.

属性说明:

down表示标识故障机.nginx如果遇到用down标识的服务器.则永远不会访问该机器.

upstream jtWindows {
		#ip_hash;	
		server localhost:8091 down;
		server localhost:8092;
		server localhost:8093;
	}

backup属性

说明:backup表示备用机机制.正常情况下该机器不参与用户的访问.留作备用.当服务器全部宕机或者主服务器遇忙时.

upstream jtWindows {

#ip_hash;

server localhost:8091 down;

server localhost:8092 down;

server localhost:8093 backup;

}

健康检查/心跳检测

说明:tomcat服务器如果正常可以抗击高并发.如果服务器宕机.则受一定的影响.这时采用备用机可以抗击压力.

问题:备用机要想生效必须满足down标签. 服务之后需要人为的添加down属性.

属性介绍:

max_fails=1:        表示用户发起请求时链接不到服务器表示失败.
fail_timeout=60s    如果服务器访问失败次数1次之后则在60秒内不会再访问故障机.
proxy_connect_timeout       2;   #服务器链接超时时间
proxy_read_timeout          2;   #读取服务器资源超时时间
proxy_send_timeout          2;   #向服务器发送资源的超时时间

使用说明:

nginx健康监测是为了在没有程序员表示down属性时,引起频繁访问故障机的情况.当服务器宕机.只需要影响用户2秒之后,在指定的周期中不会再次访问故障机.提升用户体验.

相关推荐
python算法(魔法师版)1 小时前
React应用深度优化与调试实战指南
开发语言·前端·javascript·react.js·ecmascript
Main. 242 小时前
Linux的基本指令(上)
linux·服务器
头铁散人4 小时前
IMX6ull项目环境配置
linux·运维·服务器
阿芯爱编程5 小时前
vue3 vue2区别
前端·javascript·vue.js
不叫猫先生6 小时前
【React】PureComponent 和 Component 的区别
前端·javascript·react.js·前端框架
瓴翎玲6 小时前
CSS(二)——选择器
前端·javascript·css
怡步晓心l7 小时前
Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到
linux·运维·服务器
惊鸿一博7 小时前
ubuntu_查询连接当前服务器的用户ip
服务器·tcp/ip·ubuntu
金灰8 小时前
Linux文本处理三剑客:awk、sed、grep
linux·运维·服务器·chrome·安全
等一场春雨9 小时前
Alibaba Spring Cloud 十三 Nacos,Gateway,Nginx 部署架构与负载均衡方案
nginx·spring cloud·gateway