首页 > 系统相关 >Nginx 反向代理

Nginx 反向代理

时间:2024-03-21 15:35:56浏览次数:12  
标签:8080 nginx webservers 代理 192.168 server Nginx 反向 http

nginx 反向代理的好处

  • 提高访问速度

    因为nginx本身可以进行缓存,如果访问的同一接口,并且做了数据缓存,nginx就直接可把数据返回,不需要真正地访问服务端,从而提高访问速度。

  • 进行负载均衡

    所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

  • 保证后端服务安全

    因为一般后台服务地址不会暴露,所以使用浏览器不能直接访问,可以把nginx作为请求访问的入口,请求到达nginx后转发到具体的服务中,从而保证后端服务的安全。
    image

nginx 反向代理的配置方式:

server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://localhost:8080/admin/; #反向代理
    }
}

proxy_pass:该指令是用来设置代理服务器的地址,可以是主机名称,IP地址加端口号等形式。
如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/../..这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。

接下来,进到nginx-1.20.2\conf,打开nginx配置

# 反向代理,处理管理端发送的请求
location /api/ {
	proxy_pass   http://localhost:8080/admin/;
    #proxy_pass   http://webservers/admin/;
}

当在访问http://localhost/api/employee/login,nginx接收到请求后转到http://localhost:8080/admin/,故最终的请求地址为http://localhost:8080/admin/employee/login,和后台服务的访问地址一致。

nginx 负载均衡

当如果服务以集群的方式进行部署时,那nginx在转发请求到服务器时就需要做相应的负载均衡。其实,负载均衡从本质上来说也是基于反向代理来实现的,最终都是转发请求。

nginx 负载均衡的配置方式:

upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}
server{
    listen 80;
    server_name localhost;
    
    location /api/{
        proxy_pass http://webservers/admin;#负载均衡
    }
}

upstream:如果代理服务器是一组服务器的话,我们可以使用upstream指令配置后端服务器组。

如上代码的含义是:监听80端口号, 然后当我们访问 http://localhost:80/api/../..这样的接口的时候,它会通过 location /api/ {} 这样的反向代理到 http://webservers/admin,根据webservers名称找到一组服务器,根据设置的负载均衡策略(默认是轮询)转发到具体的服务器。

注:upstream后面的名称可自定义,但要上下保持一致。

nginx 负载均衡策略:

名称 说明
轮询 默认方式
weight 权重方式,默认为1,权重越高,被分配的客户端请求就越多
ip_hash 依据ip分配方式,这样每个访客可以固定访问一个后端服务
least_conn 依据最少连接方式,把请求优先分配给连接数少的后端服务
url_hash 依据url分配方式,这样相同的url会被分配到同一个后端服务
fair 依据响应时间方式,响应时间短的服务将会被优先分配

具体配置方式:

轮询:

upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

weight:

upstream webservers{
    server 192.168.100.128:8080 weight=90;
    server 192.168.100.129:8080 weight=10;
}

ip_hash:

upstream webservers{
    ip_hash;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

least_conn:

upstream webservers{
    least_conn;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

url_hash:

upstream webservers{
    hash &request_uri;
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
}

fair:

upstream webservers{
    server 192.168.100.128:8080;
    server 192.168.100.129:8080;
    fair;
}

标签:8080,nginx,webservers,代理,192.168,server,Nginx,反向,http
From: https://www.cnblogs.com/paylove/p/18087490

相关文章

  • nginx localtion 匹配规则
    1、语法规则 语法规则:location[=|~|^~*|^~]/uri/{…}表示精确匹配,这个优先级也是最高的^~表示uri以某个常规字符串开头,理解为匹配url路径即可。nginx不对url做编码,因此请求为/image/20%/aa,可以被规则^~/image//aa匹配到(注意是空格)。~表示区分......
  • Nginx 配置访问 swagger 页面
    假设SpringBoot的应用部署在http://192.168.1.15:8093上,nginx.conf配置文件里面增加如下配置location~^/swagger/(.*){proxy_redirectoff;#proxy_set_headerHost$host;proxy_set_headerHost$host:$server_port;#添加:$server_portproxy_set_headerX-Real-IP......
  • linux通过docker部署sock5的代理
    参考链接:https://appscross.com/2023/06/quickly-install-and-deploy-socks5-service/昨日研究单位的内网机器,如果通过家里的服务器能够ssh访问内网的服务器。无疑查到ssh的软件功能强大,后无聊转到了如何自己在服务器开启socks5代理。 这里我使用的是网上查的使用docker容器......
  • Nginx配置 前后端项目
    2024-03-19Nginx配置新增/查看时间配置项功能1、yuminstallnginx;vim/ngxin/conf/ngxin.conf2、配置sever对外的端口:80993、配置代理服务的地址location/message{proxy_passhttp://47.94.3.133:9000;}4、配置前端项目映射地址loc......
  • Lvs+keepalived+nginx搭建高可用负载均衡集群
    环境配置master主机192.168.199.149,虚拟IP192.168.199.148back备机192.168.199.150真实服务器1192.168.199.155真实服务器2192.168.199.156关闭防火墙和selinuxmaster配置(149)添加虚拟IPipaddradd192.168.199.148/24devens33下载keepalivedyuminstallkeepali......
  • 代理模式(Proxy Pattern)__浅谈与装饰器模式的区别
    代理模式(英语:ProxyPattern)为其他对象提供一种代理以控制对这个对象的访问。 代理模式和装饰器模式的共同点:  不改变原有组件的情况下增强其功能 代理模式和装饰器模式的差异:  代理模式可以实现延迟加载,即在需要时才真正创建原有组件,而不是在创建代理时就立即创建原有......
  • nginx配置域名指向
    nginx实现自己域名代理阿里云oss域名地址以下是一个示例的Nginx配置,使用服务器IP代理阿里云OSS域名的方法,并带有详细的代码注释。#定义一个新的upstream,命名为oss_backendupstreamoss_backend{#指定阿里云OSS的域名serveross-domain.aliyuncs.com;}#......
  • 通过nginx来验证k8s中externalTrafficPolicy策略
    过nginx来验证k8s中externalTrafficPolicy策略域名--->172.16.80.32(域名解析反向代理)----->nginx-pod1(Local模式,模拟前端代理到nginx2-pod2)----->nginx2-pod2(Cluster模式,实际后端服务)nginx的日志格式log_formatmain'"$remote_addr""$remote_user""......
  • 自己搭建代理IP池有哪些好处呢?
    目录写在前面一、获取代理IP二、验证代理IP三、使用代理IP四、定期更新代理IP总结写在前面自己搭建代理IP池有很多好处。首先,使用代理IP可以绕过目标网站的访问限制,隐藏真实的IP地址,提高爬虫的稳定性和可靠性。其次,代理IP池可以提高爬虫的速度和效率,通过动态切换代理......
  • go使用HTTP代理和SOCKS5代理的代码示例
    本文档为获取到代理IP后使用代理的代码样例,供开发者参考。代码样例直接运行无法得到正确的结果,因为代码中的代理地址/端口和应用账号密码等信息都是虚构的,您替换成自己真实的就可以正常运行了。如何获取代理地址/端口和设置代理授权?请参考:接入指南-快速入门使用前提:......