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

Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理

2018-01-05 00:00 906 查看

Nginx防盗链

Nginx防盗链配置需要与不记录日志和过期时间结合在一起,因为都用到了location。

打开配置文件,注释掉一部分内容(红框上方),添加内容(红框部分),保存退出





valid_referers none blocked server_names *.test.com ,定义referer白名单

if ($invalid_referer) { return 403,if函数的意思是,如果不是白名单内的域名,返回值为403

检查配置文件语法正误,并重新加载配置文件



测试防盗链



不是白名单内的访问,返回403;而白名单内的访问,返回200,说明放到链设置成功。

Nginx访问控制

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

location /admin/

{

allow 192.168.133.1;

allow 127.0.0.1;

deny all;

}

mkdir /data/wwwroot/test.com/admin/

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

-t && -s reload

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

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

可以匹配正则

location ~ .*(abc|image)/.*\.php$

{

deny all;

}

根据user_agent限制

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')

{

return 403;

}

deny all和return 403效果一样

编辑配置文件,添加内容(红框中)





检查配置文件语法正误,并重新加载配置文件



测试







正则匹配

打开配置文件,添加内容,保存退出





检查配置文件语法正误,并重新加载配置文件



创建一个目录和php文件



访问测试,访问php文件,提示403;访问txt文件,成功





查看日志



根据user_agent限制

打开配置文件vim /usr/local/nginx/conf/vhost/test.com.conf

添加内容



检查配置文件语法正误,并重新加载配置文件



访问测试,模拟一个user_agent



Tomato改成tomato,则提示200(可在配置文件中的匹配符号~后面加上*号,可以忽略大小写)





Nginx解析PHP相关配置

配置如下:

location ~ \.php$

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;

}

fastcgi_pass 用来指定php-fpm监听的地址或者socket

打开配置文件vim /usr/local/nginx/conf/vhost/test.com.conf

添加内容,保存退出



创建一个php文件





访问3.php,不能解析,直接出现源码



重新加载配置文件



此时访问3.php,可以正常解析了

查看php-fpm.conf配置文件的监听地址,这里是什么,那么在Nginx的配置文件中就写什么



修改php-fpm.conf配置文件,改监听端口



检查语法对错,重新加载配置文件





查看监听端口



测试访问,提示502



查看日志



修改配置文件vim /usr/local/nginx/conf/vhost/test.com.conf



检查语法对错,重新加载配置文件





此时再访问3.php,就不出现502了,解析正常

以后出现502报错,就要查看Nginx和php-fpm中格式是否一致;fastcgi _param SCRIPT _FILENAME所在行的路径要和root路径一致。

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;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

切换到/usr/local/nginx/conf/vhost/目录下



创建代理服务器





server_name ask.apelearn.com,定义域名

proxy_pass http://121.201.9.155/,指定被代理的IP
proxy_set_header Host $host,$host指的是代理服务器的servername

检查语法对错,重新加载配置文件





测试



通过本地访问远程站点



扩展

502问题汇总

location优先级
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐