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

Nginx防盗链

Nginx防盗链配置须要与不记录日志和过时时间结合在一块儿,由于都用到了location。php

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

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

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

检查配置文件语法正误,并从新加载配置文件服务器

测试防盗链curl

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

Nginx访问控制

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

location /admin/ide

{函数

    allow 192.168.133.1;php-fpm

    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优先级

相关文章
相关标签/搜索