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