码迷,mamicode.com
首页 > 其他好文 > 详细

PCB 使用Nginx让IIS7实现负载均衡

时间:2018-11-04 21:06:28      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:使用   md5   col   closed   orm   网页   管理程序   pre   serve   

在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

六.实测网页

     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.0color 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 使用Nginx让IIS7实现负载均衡

标签:使用   md5   col   closed   orm   网页   管理程序   pre   serve   

原文地址:https://www.cnblogs.com/pcbren/p/9904764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!