nginx实战

nginx实战

nginx是一款俄罗斯程序设计师lgor Sysoev开发的高性能web服务器软件产品,主要功能在于反向代理转发,缓存等。

需求来源

本地前端开发的ajax,转发到json文件实现mock,再转到外网服务器实现调试,而不用更改本地代码   
本地文件访问不想在idea的tomcat内配置

安装

下载源:http://nginx.org/en/download.html 选择nginx/Windows-1.15.1    

配置

conf/nginx.conf为配置文件,具体配置含义参考 https://www.cnblogs.com/liang-wei/p/5849771.html

转发

配置http中server的location,对url进行正则匹配后转发。

转发到tomcat

    location ~*^/(admin|emap|dhmap) {
            limit_except GET POST DELETE OPTIONS{
                    deny all;
            }
            #tomcat端口80
            proxy_pass http://127.0.0.1:80;
     }

转发到本地文件

    location ~*^/upload/emap(.*).(gif|png|jpg|bmp|jpeg|ico|js|css|html|exe|apk|swf|xml)$ {
            root D:/tomcatXXX/apache-tomcat-7.0.59/webapps;
    }

转发到本地mock文件

    #alias不同于root,会把url路径替换,而不是拼上
    location ^~ /v1.0/pmms/device/query/ {
            alias D:/del/;
            index mock.json;
    }

转发到外网IP

    location /module {
            proxy_pass    http://10.35.163.250:9000/edit;
    }

允许跨域

    #增加response报头
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods “POST,GET,OPTIONS”;
    add_header Access-Control-Allow-Headers “Origin,Authorization,Accept”;
    add_header Access-Control-Allow-Credentials true;
    #不了解跨域,请向31261索要另一篇文章-ajax跨域实战

负载均衡

支持4种负载策略,分别为轮询(默认)、weight(指定轮询几率)、ip_hash(按ip的hash值结果分配,同一会话绑定)、fair(第三方,按响应时间分配)、url_hash(第三方,根据url分配)

    #tomcat负载均衡池
    upstream tomcat_pool{
        #不同端口的server
        server 127.0.0.1:80;
        server 127.0.0.1:81;
        server 127.0.0.1:82;
        check interval=5000 rise=2 fall=5 timeout=1000 type=tcp default_down=false;
        #负载策略为ip_hash
        ip_hash;
    }
    #tomcat转发
    location ~*^/(admin|emap|dhmap) {
            limit_except GET POST DELETE OPTIONS{
                    deny all;
            }
            #tomcat端口80
            proxy_pass http://tomcat_pool;
     }

缓存

缓存可根据url等策略,支持缓存的持续时间,使用次数,击中概率修改。   
参考地址https://blog.csdn.net/wangjianno2/article/details/75201020

内置属性

nginx的内置属性即变量   
具体属性含义参考https://blog.csdn.net/weixin_36429334/article/details/69619487

自定义属性

    set $cus_val “www.baidu.com”

lua脚本支持

要定制nginx,需要懂源码,且用符合其规范的C编程,这点很难,而openResty框架集成了lua脚本和nginx的业务关联,可以利用lua实现更好的业务定制,可以查询redis、mysql等。   
主要表现在rewrite、access、content等阶段的控制   
具体可参考https://blog.csdn.net/xu_ya_fei/article/details/41964495

启动/关闭

windows下cmd界面启动为start nginx,关闭为nginx.exe -s stop    
linux下调对应sh脚本即可

你可能感兴趣的:(组件,nginx,http代理,url转发,url缓存)