找回密码
 立即注册
搜索
查看: 171|回复: 0

[其他] nginx功能应用

[复制链接]

80

主题

3

回帖

309

积分

中级用户

积分
309
发表于 2023-7-8 10:03:06 | 显示全部楼层 |阅读模式
本帖最后由 疯狂IT 于 2023-7-8 10:04 编辑

一、反向代理_软网关
【背景】由于软网关需要直接部署在服务器上,对于客户来讲,有很多担忧的地方:一、担心会影响应用系统;二、装多个软网关,安装/维护麻烦;三、通过代理,可以只装一台
【关键名词】linux、软网关、nginx、反向代理

本篇会详细介绍nginx的配置,偏场景应用
一、适用场景
客户需要保护的应用系统系统,无法架设硬件安全网关,客户又不想或者没办法在他们系统上安装软网关。

​虽然反向代理的原理是为了隐藏后面真实的服务器的地址,但是难以保证真实地址外泄。所以推荐软网关+反向代理的方案,需注意:
① 客户针对系统的真实地址访问通讯可以控制,比如黑白名单;若无法控制访问对象,可能出现非法机器直接访问真实地址的情况;
② 反向代理会改变之前的访问习惯,使用代理后,用户所访问的将全部变成代理地址
二、环境准备
反向代理可以通过nginx来实现,理论上支持windows、linux。软网关只支持linux64位操作系统;

环境需准备一台代理服务器,常用linux系统即可,此处使用Ubuntu16.04 64位操作系统
三、搭建测试
使用nginx实现反向代理

① 安装nginx;
apt-get update
apt-get install nginx
② 在/etc/nginx 修改nginx.conf,在文档末尾增加:
  1. <!举例>
  2. stream {
  3.         upstream oa {
  4.             server 192.168.3.177:8088;
  5.         }            
  6.         server {
  7.             listen 8088;
  8.             proxy_pass oa;
  9.             proxy_timeout 1m;
  10.             proxy_connect_timeout 60s;
  11.         }
  12. }
复制代码

测试验证:
访问测试代理服务器IP地址:8088,能正常访问,即测试通过
这里有两个注意的点:
一是测试反向代理通过后,再去安装软网关,如果两个一起装了,访问不了的情况会分不清是软网关起了作用还是反向代理没生效;
二是centos系统安装nginx的时候默认不会安装stream模块,所以使用centos做反向代理服务器的时候需要自己下载nginx源包编译
测试验证:
1.白名单测试,白名单用户正常访问,非白名单且非法机器无法访问;
2.上传下载测试,合法客户端上传解密,下载加密

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

二、负载均衡_多服务器
客户情境:客户拆分三套IP-guard系统,分管外部不同人员,但是内部只有一个公网地址,无法将三套服务器都做映射;

解决方案:
利用nginx的负载均衡功能,对三套服务器做负载均衡,实现不同客户端连接对应的服务器;
具体做法:
1.配置nginx负载均衡,A连不上的时候连B,B连不上的时候连C
2.针对三套服务器做检验码设置
附:负载均衡配置(举例)
  1. stream {        
  2.     upstream ipgconsole {            
  3.         server 192.168.2.4:8236 max_fails=3 fail_timeout=30s;
  4.        server 192.168.1.64:8236 backup;        
  5.        }        
  6.    upstream ipgreport {            
  7.            server 192.168.2.4:8271 max_fails=3 fail_timeout=30s;            
  8.        server 192.168.1.64:8271 backup;        
  9.        }   
  10.    server {        
  11.            listen 8236;        
  12.        proxy_pass ipgconsole;        
  13.        proxy_timeout 1m;        
  14.        proxy_connect_timeout 60s;   
  15.        }   
  16.     server {        
  17.         listen 8271;        
  18.        proxy_pass ipgreport;      
  19.        proxy_timeout 1m;        
  20.        proxy_connect_timeout 60s;   
  21.        }
复制代码

三、反向代理_服务器通讯
客户情景:客户是培训教育机构,有多个网点,当时服务器部署在B市,交换机做了内网映射,做公网地址访问;后来发生服务器中毒,客户在A市搭了新的服务器,但是之前安装的客户端都是连接的B服务器,导致所有电脑无法上线,重新部署客户端(多网点,很分散)也不现实;

解决方案:
用nginx做反向代理,将客户端往B市的流量引向A市;
具体做法:
找了B市一台电脑安装nginx,然后配置监听A市服务器公网的8237端口,同时将B市这台电脑在交换机做原先一样的映射;
这样,客户端—->B市公网(会被nginx引向A市公网),所有客户端正常上线;
附:反向代理配置
查看nginx安装路径
whereis nginx ==> /usr/local/nginx
进入安装目录启动/usr/local/nginx/sbin
反向代理配置:
vi /usr/local/nginx/conf/nginx.conf
在末尾添加(简单配置):
  1. stream {        
  2.     upstream svn {            
  3.         server 192.168.3.177:8236;        
  4.         }        
  5.     upstream svn2 {            
  6.         server 192.168.3.177:8237;        
  7.         }
  8.     server {        
  9.         listen 8236;        
  10.         proxy_pass svn;        
  11.         proxy_timeout 1m;        
  12.         proxy_connect_timeout 60s;   
  13.         }
  14.      server {        
  15.          listen 8237;        
  16.         proxy_pass svn2;        
  17.         proxy_timeout 1m;        
  18.         proxy_connect_timeout 60s;   
  19.         }
  20.    }
复制代码


来自圈子: IP-Guard 认证工程师
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|企业IT论坛

GMT+8, 2025-8-24 08:02 , Processed in 0.142234 second(s), 24 queries .

Powered by ITGGG.com

© 2016-2025

快速回复 返回顶部 返回列表