博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx防盗链,Nginx访问控制, Nginx解析php相关配置, Nginx代理
阅读量:6982 次
发布时间:2019-06-27

本文共 2266 字,大约阅读时间需要 7 分钟。

hot3.png

Nginx防盗链

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

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

213152_Gesb_3708406.png

213324_I8hU_3708406.png

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

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

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

213733_iIpg_3708406.png

测试防盗链

214012_6cfL_3708406.png

不是白名单内的访问,返回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效果一样

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

215045_A9DW_3708406.png

215211_yTqI_3708406.png

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

222118_lLn6_3708406.png

测试

222345_vU1Z_3708406.png

223709_nrYh_3708406.png

223726_EAfK_3708406.png

正则匹配

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

225957_G9A0_3708406.png

230030_OFLl_3708406.png

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

230113_y5CR_3708406.png

创建一个目录和php文件

232200_NZN3_3708406.png

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

232256_7fU9_3708406.png

232352_jDmg_3708406.png

查看日志

232519_KWUX_3708406.png

根据user_agent限制

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

添加内容

232744_vyoZ_3708406.png

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

233520_Hrzu_3708406.png

访问测试,模拟一个user_agent

233808_9nIQ_3708406.png

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

234018_gI53_3708406.png

234309_XUyv_3708406.png

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

添加内容,保存退出

235502_O7wG_3708406.png

创建一个php文件

235602_ev6e_3708406.png

235636_y3F1_3708406.png

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

235843_tWAP_3708406.png

重新加载配置文件

000056_NfcV_3708406.png

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

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

001810_YEXB_3708406.png

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

002224_yux3_3708406.png

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

002352_mdjb_3708406.png

002325_dKzQ_3708406.png

查看监听端口

002437_HZo3_3708406.png

测试访问,提示502

003237_SfyA_3708406.png

查看日志

003322_1Jhw_3708406.png

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

001057_feha_3708406.png

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

003515_YpUq_3708406.png

003526_7w7M_3708406.png

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

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

Nginx代理

004604_XJZq_3708406.png

  • 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/目录下

005000_QCiC_3708406.png

创建代理服务器

005135_R4cP_3708406.png

005211_mWZS_3708406.png

server_name ask.apelearn.com,定义域名

proxy_pass http://121.201.9.155/,指定被代理的IP

proxy_set_header Host $host,$host指的是代理服务器的servername

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

005416_nH1a_3708406.png

005436_BFnI_3708406.png

测试

005531_TsOs_3708406.png

通过本地访问远程站点

005554_yhQ5_3708406.png

扩展

转载于:https://my.oschina.net/u/3708406/blog/1603172

你可能感兴趣的文章
递归增量监控目录/文件,逐行读取内容并输出
查看>>
CHAR和VARCHAR
查看>>
GIT分支创建和合并
查看>>
FreeBSD9.0 安装php-fpm
查看>>
MapXtreme 2005 学习心得 相关代码知识(三)
查看>>
CSS 字体系列
查看>>
[M0]Android开启odex,优化开机速度
查看>>
transfer.sh:通过命令行简单的创建文件分享
查看>>
java 远程debug
查看>>
高德地图POI查找
查看>>
Java transient关键字
查看>>
磁盘格式化
查看>>
Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1
查看>>
遭遇各种内容监管,有些企业到底欠缺的是什么,仅仅是价值观吗?
查看>>
华为交换机重置密码
查看>>
CentOS 7安装KVM虚拟机OpenSUSE42操作实录
查看>>
专属小白们的Zabbix部署详解
查看>>
shareinstall可以解决地推统计这个难题
查看>>
Mac Mysql Access denied for user 'root'@'localhost
查看>>
Python学习三级菜单
查看>>