zoukankan      html  css  js  c++  java
  • Nginx:一个*的设置

    有这么一个情况,

    有个运行Asp的应用,比较土,还是用本地 *.mdb 的数据库。这么一来,就不可能通过 Apache ::: asp 这样的插件令其运行在Linux的环境中。而且是相当烂的一个 asp 程序,连html模板都没单独目录存放,直接跟 *.asp 混在一块。

    幸好这个世界有 Nginx, 是对待这种破东西最好的优化。

    如果直接靠 IIS 既处理 asp 又处理静态文件的话,流量一大性能是不堪想象了。
    (在ab压力测试中, 就100线程请求一个 gif 的静态文件做测试, 已经令IIS的CPU相当不安)

    2台服务器,运行架构计划为最简单的 Nginx –> IIS

    就通过 Nginx Proxy 到IIS 的80端口上。

    但测试的时候发现,虽然速度瞬间得到体现,但每次请求,Nginx 都会往IIS上拉文件,特别是静态文件。
    大,而且会让IIS的cpu不安分。

    原本试用在 Linux 下 mount  一个 smb 的盘,然后让Nginx直接往里头通过 smb 请求 IIS 应用服务器上的静态文件。从而绕开 IIS 避免压力。但出了怪问题….况且跟本文无关,就暂略不说了。

    最后用上了 Nginx proxy_store ,Nginx 直接把静态文件在本地硬盘创建并读取,

    效果相当好,而且某程度上对待这么烂的应用要装个Squid 确实有点大题小作。

    但 Proxy_store 跟 Squid 是有区别的!! 最明显的一点在于其不具有expires,无法通过程序控制cache什么时间过期。往后要写个脚本定期删除缓存目录中的内容,不过这也正合我意。

    以下是配置方式:

    如果需要将文件缓存到本地,则需要增加如下几个子参数:
    proxy_store on;
    proxy_store_access user:rw group:rw all:rw;
    proxy_temp_path 缓存目录;

    其中,
    proxy_store on 启用缓存到本地的功能,
    proxy_temp_path 指定缓存在哪个目录下,如:proxy_temp_path /var/nginx_cache;

    在经过上一步配置之后,虽然文件被缓存到了本地磁盘上,但每次请求仍会向远端拉取文件,为了避免去远端拉取文件,还必须增加:

    if ( !-e $request_filename) {
    proxy_pass  http://192.168.10.10;
    }

    即改成有条件地去执行proxy_pass,这个条件就是当请求的文件在本地的proxy_temp_path指定的目录下不存在时,再向后端拉取。

    整体配置例子:

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {  #指定缓存文件类型
    expires 7d;  #设置浏览器过期时间
    root /data1/nginx_cache/iis;  #静态文件根目录目录(必须对应proxy_temp_path)
    proxy_store on;  #开启缓存机制
    proxy_store_access user:rw group:rw all:rw;  #缓存读写规则
    proxy_temp_path /data1/nginx_cache/iis;  #存放静态文件的缓存目录
    include proxy.conf;  # 外联proxy理的详细配置如proxy_set_header, client_max_body_size ….
    if ( !-e $request_filename) {  #正则表达式,匹配缓存目录中的文件与源文件是否存在)
    proxy_pass  http://192.168.10.10 # IIS 应用的服务器地址
    }
    }

    原创文字只代表本人某一时间内的观点或结论,本人不对涉及到的任何代码担保。转载请标明出处!

  • 相关阅读:
    积水路面Wet Road Materials 2.3
    门控时钟问题
    饮料机问题
    Codeforces Round #340 (Div. 2) E. XOR and Favorite Number (莫队)
    Educational Codeforces Round 82 (Rated for Div. 2)部分题解
    Educational Codeforces Round 86 (Rated for Div. 2)部分题解
    Grakn Forces 2020部分题解
    2020 年百度之星·程序设计大赛
    POJ Nearest Common Ancestors (RMQ+树上dfs序求LCA)
    算法竞赛进阶指南 聚会 (LCA)
  • 原文地址:https://www.cnblogs.com/leleroyn/p/1922159.html
Copyright © 2011-2022 走看看