您的位置:首页 > 运维架构 > Nginx

LNMP架构(四)之Nginx防盗链,访问控制,解析php,代理

2018-01-05 00:00 951 查看
Nginx防盗链
配置如下,可以和上面的配置结合起来

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
expires 7d;
valid_referers none blocked server_names  *.test.com  abc.com;    //定义白名单,不在白名单则返回403。
if ($invalid_referer) {
return 403;
}
access_log off;
}

即这个白名单为referer,就是访问当前网址的上一个网址。

修改完记得

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload




Nginx访问控制

需求:访问/admin/目录的请求,只允许某几个IP访问,配置如下:

location /admin/
{
allow 192.168.137.1;
allow 127.0.0.1;
deny all;
}

mkdir /data/wwwroot/test.com/admin/
echo “test,test”>/data/wwwroot/test.com/admin/1.html

curl -x127.0.0.1:80 test.com/admin/1.html -I
curl -x192.168.133.130:80 test.com/admin/1.html -I




可以匹配正则,限制站点目录下访问php。

location ~ .*(abc|image)/.*\.php$   //定义匹配abc或者image目录下以php结尾的都拒绝。
{
deny all;
}




根据user_agent限制

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')        //严格匹配,如果要忽略大小写,在~后加*
{
return 403;
}

deny all和return 403效果一样



Nginx解析php相关配置

配置如下:

location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;          //这里的文件路径要和php-fpm配置文件里头的一样,如果php-fpm监听的是127.0.0.1:9000,那这里也同样要改成监听127.0.0.1:9000。
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
}

fastcgi_pass 用来指定php-fpm监听的地址或者socket,要是这里写错会出现502的报错。



Nginx代理

cd /usr/local/nginx/conf/vhost
vim proxy.conf //加入如下内容
server
{
listen 80;
server_name ask.apelearn.com;        //定义服务器的域名
location /
{
proxy_pass      http://121.201.9.155/;       //定义服务器地址
proxy_set_header Host   $host;                //定义要访问的域名为server_name
proxy_set_header X-Real-IP      $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

上述例子为:将本机做代理,访问猿课官网。
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐