设为首页 收藏本站
查看: 921|回复: 0

[经验分享] 一次接口网站IIS6切换成IIS7失误造成的影响

[复制链接]
YunVN网友  发表于 2018-12-8 11:11:56 |阅读模式
  首先上环境:
  原接口网站服务器windows2003R2 32bit     IIS6.0
  新服务器windows2008R2 64bit          IIS7.0
  网站前端用nginx做反向代理
  1;操作步骤
  首先把站点拷贝到新服务器上
  这一步没有什么问题 一个ftp搞定 另外我们网站环境用了一个同步源 sersync2--rsync的操作 所以并不影响了开发传代码
  2;测试
  本机修改hosts 路径为C:\Windows\System32\drivers\etc
  192.168.1.50 www.AAA.com
  ##这步相当关键,之后因为这里测试不严谨导致一系列故障
  3;修改nginx配置文件
  ##附上我做nginx反向代理测试的config文件
  user  www www;
  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;
     #172.18.18.217
     upstream 172.18.18.217{
      server 172.18.18.217:80;
     }
      server {
          listen       80;
          server_name  test.com;
          #charset koi8-r;
          #access_log  logs/host.access.log  main;
          location / {
              proxy_pass          http://172.18.18.217;
              proxy_set_header    Host            $host;
              proxy_set_header    X-Real-IP       $remote_addr;
              proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
          }
          #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;
      #    }
      #}
  }
  

  4;另准备一台nginx反向代理服务器,跟源nginx配置文件一模一样
  ##这个当时没考虑到,但是因为以前我就做个一个在线上的nginx服务器的备份服务器 线上服务器和备用服务器没有采取高可用,但是也同时利用了sersync2---rsync,之后出问题的时候我才知道自己有多明智(搞不定之后,我用了这台备用的nginx--原网站接口服务器)
  

  5;正式切换
  其实也就是在线上nginx服务器上将原来的 upstream更换成另外一个而已  不叙述了,nginx反带不难 这里有个相当重要的操作就是一定要
  ./nginx -t 检测配置文件写的是否正确,再reload加载 我们这一步相当的严谨做了
  

  问题爆发
  1;我们切换过去之后发现 网站刚刚还能打开,之后就不能够打开了
  突然一下 20~30个网站接口全挂了,开发全部来找我,自己说实话也慌了。
  解决:我们发现了一个让人哭笑不得的问题,新的服务器被我们安装了一个服务器安全狗 所以你懂的。nginx反向代理和负载 后端web服务器又防火墙的话一定要加个白名单
  这里在切换之后或者在切换之前再弄一台nginx反带  用ab测试 分别测试不同的网站接口(nginx有缓存功能,如果一直用ab测试相同的网站并无意义,可能还需要多台ab客户端)
  

  2;突然冒出以一个网站接口打开报错
  说实话,我对网站代码报错也不懂,开发一个劲的找我(他也是从别人手上接手的代码,还没看过的) 之后一个开发查了下报错信息发现这个程序需要.net3.5环境 问我安装了没有
  我说没有,情况可想而知
  这里一说明我们测试(上面第2步)并不严谨  二说明我们配置服务器环境的时候也没考虑到位
  

  3;开发给了我一个建议说从32位系统搬迁到64位上 最好在IIS7上还是使用32位的.net环境  不然里面出现了些异常更加难查 更改如下图

  一次简单的网站切换竟然导致了这么多问题,细节很重要啊。
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-644642-1-1.html 上篇帖子: 用 IIS 7、ARR 與 Velocity 建设高性能的大型网站 下篇帖子: iis添加gzip功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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