PCB 使用Nginx让IIS7实现负载均衡
在PCB行业众多系统中PCB工程系统是主要的数据生产者, 它与外部系统数据交互是最多的,经统计接口数超过100个之多;这么多接口调用与管理起来是混乱的,所以今年年初对工程集成方式改造,将原来的点对点的方式集成更改为Web中心集成方式,并业务逻辑与数据层全部转向Web中心端处理,下面看看工程集成线路改造前后集成线路图.
改造前---PCB工程系统集成线路图
改造后---PCB工程系统集成线路图
改造后优点,
1.集成管理工程系统接口内部调用与外部调用
2.统一工程系统客户端调用参数传递
3.统一业务逻辑与数据层
4.统一Log 日志记录
5.外部接口变更,可以实现客户端不用更新达到接口更新
但存在缺点,业务逻辑处理压力全部压在Web中心(其实也算不上缺点,当PCB业务量发展到一定的程度一台服务器扛不住时,基本都是采用分而治之的思想,1台服务器不行稿2台,2台不行稿3台,)
但由于统一集成接口管理,逻辑业务处理全部转向Web中心端处理,这样一来导致压力全部集中在一台Web服务器上, 目前此台服务器一直处于高位运行, 以当前的订单量还能应付,但我们搞程序的人总要有居安思危,有防患于未然的意识, 不要等到哪天服务器服务器扛不住了,再想解决办法就晚了是吧.这里就介绍使用Nginx让IIS7实现负载均衡,使用起来好简单,网上也有很多例子,这里用实际操作再记录一遍。
一.下载Nginx
官方下载 http://nginx.org/en/download.html
目前1.14.0这个版本最稳定,在64位与32位都运行了没问题.
二.解压Nginx
这是绿色软件,不需安装,解压zip后,再配置一下就能用,但不能放在中文目录下,不然运行不起来
三.配置Nginx
四.启动Nginx,并验证是否成功
五.Nginx配置负载均衡
配置代码:
#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024; }http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;upstream myserver{server 172.18.226.184:8030 weight=2 down;server 172.18.226.184:8031 weight=1;server 172.18.226.184:8032 weight=2;ip_hash;}server {listen 8033;server_name myserver;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;proxy_pass http://myserver; }#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
View Code
请求尺寸大小可以在nginx.conf中的http中设置:
client_max_body_size 20M;client_body_buffer_size 256k;
六.实测网页
http://pcbren.cn:8033/
这样就可以实现对外一个网址,但对内却是多台服务器(这里用端口号区分)
六.nginx批处理管理
用于nginx管理 有nginx.bat管理更方便(来自http://leleroyn.cnblogs.com,感谢分享)
cls @ECHO OFF SET NGINX_PATH=D: SET NGINX_DIR=D:\nginx-1.14.0\ color 0a TITLE Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com) GOTO MENU :MENU CLS ECHO. ECHO. * * * * Nginx 管理程序 Power By Ants (http://leleroyn.cnblogs.com) * * * ECHO. * * ECHO. * 1 启动Nginx * ECHO. * * ECHO. * 2 关闭Nginx * ECHO. * * ECHO. * 3 重启Nginx * ECHO. * * ECHO. * 4 退 出 * ECHO. * * ECHO. * * * * * * * * * * * * * * * * * * * * * * * * ECHO. ECHO.请输入选择项目的序号: set /p ID= IF "%id%"=="1" GOTO cmd1 IF "%id%"=="2" GOTO cmd2 IF "%id%"=="3" GOTO cmd3 IF "%id%"=="4" EXIT PAUSE :cmd1 ECHO. ECHO.启动Nginx...... IF NOT EXIST %NGINX_DIR%nginx.exe ECHO %NGINX_DIR%nginx.exe不存在 %NGINX_PATH% cd %NGINX_DIR% IF EXIST %NGINX_DIR%nginx.exe start %NGINX_DIR%nginx.exe ECHO.OK PAUSE GOTO MENU :cmd2 ECHO. ECHO.关闭Nginx...... taskkill /F /IM nginx.exe > nul ECHO.OK PAUSE GOTO MENU :cmd3 ECHO. ECHO.关闭Nginx...... taskkill /F /IM nginx.exe > nul ECHO.OK GOTO cmd1 GOTO MENU
View Code
七.更多Nginx配置请链接,这里整理如下:
Nginx负载均衡简单配置
4 种负载均衡算法
nginx反向代理proxy_pass配置URI引起的思考
八.PCB工程OCR文字识别工具改造
另一篇文章PCB 内网实现《OCR文字识别》实现逻辑 采用的2套 WCF接口嵌套调用实现内外网访问的,回想起这方法好笨呀,有了这么好的工具可以进行改造了,在内网Web服务器中直接用Nginx进行反向代理就好了。
转载于:https://www.cnblogs.com/pcbren/p/9904764.html
PCB 使用Nginx让IIS7实现负载均衡相关推荐
- Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 1.什么是Nginx,谈谈个人都理解,项目中是否用到,为什 ...
- 懂点 Nginx 反向代理与负载均衡,是面试加分项没有之一
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等 ...
- 介绍下Nginx 反向代理与负载均衡
Nginx的代理功能与负载均衡功能是最常被用到的,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx 代理服务的配置说明 1.设置 404 页面导向地址 error_pag ...
- 【Nginx】面试官:给我讲讲Nginx如何实现四层负载均衡?
写在前面 这次又被问到Nginx四层负载均衡的问题了,别慌,我们一起来细细分析这个看似简单的问题. 负载均衡可以分为静态负载均衡和动态负载均衡,接下来,我们就一起来分析下Nginx如何实现四层静态负载 ...
- Nginx反向代理以及负载均衡配置
一 .nginx 的优缺点: nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则 ...
- nginx实现请求的负载均衡 + keepalived实现nginx的高可用
前言 使用集群是网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.这种 ...
- Nginx-06:Nginx配置实例之负载均衡
Nginx配置实例之负载均衡 目的:访问http://192.168.17.129/edu/a.html时平均的分配到8080和8081端口,即实现负载均衡的效果. 1.准备工作 (1)准备两台tom ...
- Nginx代理功能与负载均衡详解
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
本站点停止更新,请访问:blog.coocap.com 相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tom ...
最新文章
- JavaScript入门篇 - DOM操作
- 怎么让手机变成震动器_详解iPhone 手机标配的两种技术:线性马达和3Dtouch,有多好用?...
- 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
- python喜马拉雅收费_python抓取喜马拉雅免费专辑
- C++实现dijkstra单源最短路径算法-邻接表+优先队列
- qt中关于坐标的说明
- 分区操作后索引的状态
- pacbio 原始下机数据h5 文件简介
- php 5.6.21连接mysql_IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
- element-ui中dialog和el-image组件冲突问题
- Provisioning Services 7.6 入门到精通系列之二:基础架构环境
- 原生js三种选项卡效果(滑动)
- 手机app测试用例怎么写?手机app测试点有哪些?只有干货没有水分,错过绝对后悔!
- 时光倒流我这么学java
- 移动混合开发框架+Android原生模块化/组件化
- 从细菌GFF文件提取CDS序列并转换为氨基酸序列
- 基于阿里云和Arduino的化学环境系统检测,支持钉钉机器人告警(MQ2、MQ3、MQ7、DHT11 完整源码以及实现步骤)
- 【论文阅读】Advances and challenges in conversational recommender systems: A survey
- hive 大数据 除重问题研究
- 基于投影学习的负采样改进型上位词关系提取 (翻译学习使用)
热门文章
- 线程:创建--【J2SE】
- android webview 自定义404错误页面!
- 订阅者java_RxJava:“java.lang.IllegalStateException:只允许一个订阅者!”
- MATLAB读取二进制文件------fread
- java代码如何与界面联系在一起_如何在Visual Studio Code 中编写Java代码
- linux启动自动挂载共享文件,linux中自动挂载windows 共享目录
- 编程猫python讲师面试_【编程猫教师面试】在BOSS问了我很多,问我为什么选择编程猫,问我了解编程猫吗?-看准网...
- 微软技术支持工程师_微软催你买电脑啦!即可+99元即可享受上门帮教服务
- python简易爬虫课程设计_python实现简单爬虫功能的示例
- 『原创』用C++开发WM应用系列(6)——深化ListBox控件