zoukankan      html  css  js  c++  java
  • nginx针对某个url限制ip访问,常用于后台访问限制

    假如我的站点后台地址为: http://www.abc.net/admin.php 那么我想限制只有个别ip可以访问后台,那么需要在配置文件中增加:
        location ~ .*admin.* {
            allow 1.1.1.1;
            allow 12.12.12.0/24;
            deny all;
            location ~ .php$ {
            include fastcgi_params;
            fastcgi_pass  unix:/tmp/php-fcgi.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
            }
        }
    
    需要注意的是,在这个location下也得加入php解析相关的配置,否则php文件无法解析。
    upstream market-api{  
       server 127.0.0.1:3000;
    }
    
    server {
        listen 80;
        listen 443 ssl;
        server_name  btc.btc.com;
        add_header Access-Control-Allow-Origin *;
    
    
        ssl_certificate  /etc/nginx/cert_sql/15.pem;
        ssl_certificate_key /etc/nginx/cert_sql/15.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
    
        #root  /var/www/api2;
        root  /var/www/apis;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ =404;
        }
    
        location /apis/{
             proxy_pass http://market-api;
             proxy_set_header Host $host;
            }
    
    
        location /api/ {
            if ( !-e $request_filename){
                rewrite ^/(.*)$ /api/web/index.php?s=$1 last;
            }
        }
    
        location ^~ /res/ {
            alias /data/api/;
        }
        
    
        include fastcgi-php.conf;
    }
    location ~ .*index.php* {
          
            allow 12.12.12.0/24;
            deny all;
            location ~ .php$ {
            include fastcgi_params;
            fastcgi_intercept_errors on;
            fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            }
        }

    Nginx配置location限制IP访问策略

    1.配置如下

    server {
            listen       80;
            server_name  localhost;
            
            large_client_header_buffers 4 16k;
            client_max_body_size 300m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
            proxy_buffer_size 64k;
            proxy_buffers   4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            
            location /project {
                allow    220.178.25.22;
                allow    172.2.2.0/24;
                allow    192.2.2.0/24;
                deny    all;
                proxy_pass http://172.2.2.20:8080/project/;
                proxy_set_header   Host    $host:$server_port;
                proxy_set_header   X-Real-IP   $remote_addr; 
                proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                client_max_body_size    10m;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }

    2.配置说明

    以上配置的作用是允许IP为220.178.25.22,以及172和192网段的机器可以访问这个location地址,其他IP的客户端访问均是403。

    其中,24是指子网掩码为255.255.255.0。

    3.对照表(子网掩码/CIDR值)

    255.0.0.0/8
    255.128.0./9
    255.192.0./10
    255.224.0./11
    255.240.0./12
    255.248.0./13
    255.252.0./14
    255.254.0./15
    255.255.0./16
    255.255.128/17
    255.255.192/18
    255.255.224/19
    255.255.240/20
    255.255.248/21
    255.255.252/22
    255.255.254/23
    255.255.255/24
    255.255.255.128/25
    255.255.255.192/26
    255.255.255.224/27
    255.255.255.240/28
    255.255.255.248/29
    255.255.255.252/30
  • 相关阅读:
    常见的设计模式:单例模式、工厂模式、观察者模式、装饰模式与适配器模式
    WCF、Web API、WCF REST、Web Service之区别
    Asp.Net Web API VS Asp.Net MVC
    sql server 2008 评估期已过期解决办法
    IIS6.0中布署MVC站点
    SQL Server类型与C#类型对应关系
    经纬度 lbs 笔记
    C#实现用Newtonsoft.Json 4.5.11解析人人网院校信息并获取院系信息
    当前上下文中不存在名称"Session"
    [ASP.NET]HttpCookieCollection to CookieCollection的最简单方法
  • 原文地址:https://www.cnblogs.com/js1314/p/13826729.html
Copyright © 2011-2022 走看看