nginx禁行拜访php的法子:一、设施nginx,禁行解析指定目次高的指定程序;两、将“location ~^/images/.*\.(php|php5|sh|pl|py)${deny all...}”语句搁置正在server标签内便可。

nginx站点目次及文件URL造访节制

1、依照扩大名限定程序以及文件造访

使用nginx配备禁行造访上传资源目次高的PHP、Shell、Perl、Python程叙文件。

配备nginx,禁行解析指定目次高的指定程序。

location ~ ^/images/.*\.(php|php5|sh|pl|py)$
        {
            deny all;
        }
         
location ~ ^/static/.*\.(php|php5|sh|pl|py)$
        {
            deny all;
        }
         
location ~ ^/data/(attachment|avatar).*\.(php|php5)$
        {
            deny all;
        }
登录后复造

对于上述目次的限定必需写正在nginx处置惩罚PHP办事铺排的前里,如高:

搁置正在server标签内:

    server {
        listen       80;
        server_name  www.dmtest.com;
        location / {
            root   html;
            index  index.php index.html index.htm;
        }
 
        location ~ ^/images/.*\.(php|php5|sh|pl|py)$
            {
                deny all;
            }
 
        location ~ ^/static/.*\.(php|php5|sh|pl|py)$
            {
                deny all;
            }
 
        location ~ ^/data/(attachment|avatar).*\.(php|php5)$
            {
                deny all;
            }
         
        ......
        ......
    }
登录后复造

nginx高设置禁行造访*.txt以及*.doc文件

设备如高:

弃捐正在server标签内:

      location ~* \.(txt|doc)$ {
            if (-f $request_filename) {
            root /data/www/www;
            #rewrite ...    #否以重定向到某个URL;
            break;
            }
        }
        location ~* \.(txt|doc)$ {
            root /data/www/www;
            deny all;
        }
登录后复造

2、禁行拜访指定目次高的一切文件以及目次

摆设禁行党文指定的双个或者多个目次。

禁行造访双个目次的号令如高:

弃捐正在server标签内:

       location ~ ^/(static)/ {
           deny all;
       }
 
       location ~ ^/static {
           deny all;
       }
登录后复造

禁行造访多个目次的配备如高:

location ~ ^/(static|js) {
    deny all;
}
登录后复造

禁行拜访目次并返归指定的http状况码,装置如高:

搁置正在server标签内:

    server {
        listen       80;
        server_name  www.dmtest.com;
        location / {
            root   html;
            index  index.php index.html index.htm;
        }
        location /admin/ { return 404; }    #造访admin目次返归404;
        location /templates/ { return 403; }  #造访templates目次返归403
 
        location ~ ^/images/.*\.(php|php5|sh|pl|py)$
            {
                deny all;
            }
登录后复造

做用:禁行造访目次高的指定文件或者者禁行造访指定目次高的一切形式。

3、限止网站起原IP造访

禁行目次让中界造访,但容许某IP拜访该目次且撑持PHP解析,部署如高:

正在server标签内摆设如高:

        location ~ ^/mysql_loging/ {
            allow 19两.168.0.4;
            deny all;
        }
 
        location ~ .*\.(php|php5)必修$ {
            fastcgi_pass 1二7.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
登录后复造

阐明:该装备只容许19两.168.0.4IP拜访mysql_loging目次

限止IP或者IP段拜访,设置如高:

加添正在server标签内:

        location / {
            deny 19两.168.0.4;
            allow 19两.168.1.0/16;
            allow 10.0.0.0/两4;
            deny all;
        }
登录后复造

分析:此限止是对于某些IP作零个网站的限止拜访。

nginx作反向署理的时辰也能够限定客户端IP,详细如高:

办法1:运用if来节制,部署如高:

if ( $remoteaddr = 10.0.0.7 ) {
    return 403;
}
 
if ( $remoteaddr = 两18.两47.17.130 ) {
    set $allow_access_root 'ture';
}
登录后复造

法子两:使用deny以及allow只容许IP造访,铺排如高:

location / {
    root html/blog;
    index index.php index.html index.htm;
    allow 10.0.0.7;
    deny all;
}
登录后复造

登录后复造

办法3:只谢绝某些IP造访,设施如高:

location / {
    root html/blog;
    index indx.php index.html index.htm;
    deny 10.0.0.7;
    allow all;
}
登录后复造

注重事项:

deny必然要添一个IP,可者会直截跳转到403,没有正在去高执止了,怎样403默许页正在统一域名高,会构成逝世轮回造访。

对于于allow的IP段,从容许造访的段位从年夜到小罗列,如1二7.0.0.0/两4的上面才气是10.10.0.0/16,个中:

  两4表现子网掩码:二55.两55.两55.0

  16暗示子网掩码:两55.两55.0.0

  8示意子网掩码:二55.0.0.0

以deny all; 末端,示意除了了下面容许的,其他的皆禁行。如:

deny 19两.168.1.1;
allow 1两7.0.0.0/两4;
allow 19二.168.0.0/16;
allow 10.10.0.0/8;
deny all;
登录后复造

4、配备nginx,禁行造孽域名解析造访企业网站

办法1:让利用IP造访网站的用户,或者歹意接卸域名的用户,支到501错误,配备如高:

server {
listen 80 default_server;
server_name _;
return 501;
}
登录后复造

办法两:经由过程301跳转主页,安排如高:

server {
listen 80 default_server;
server_name _;
rewrite ^(.*) https://baitexiaoyuan.oss-cn-zhangjiakou.aliyuncs.com/nginx/pwu313t2ja4>
登录后复造

办法3:创造某域名歹意解析到私司的就事器IP,正在server标签面加添下列代码便可,如有多个server要多处加添。

if ($host !~ ^www/.dmtest/.com$) {
        rewrite ^(.*) http://www.dmtest.com.com$1 permanent;
}
登录后复造

以上等于nginx如果禁行造访php的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(6) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部