6月11日任务

12.13 Nginx防盗链

1.编辑配置文件,(可以和之前的配置结合起来)

 # vim /usr/local/nginx/conf/vhost/test.com.conf


2. -t && -s reload

3.测试   //-e 用来模拟referer ,当它为baidu时,403;当它为test.com,正常访问,说明配置成功


12.14 Nginx访问控制

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

1.针对目录

# vim /usr/local/nginx/conf/vhost/test.com.conf   

//针对对admin目录只允许以下2个ip访问


测试

172.31.208.147时本机ip,为了试验先在配置文件里注释掉


访问,403,不允许访问admin目录

#  curl  -x172.31.208.147:80 test.com/admin/

#  curl  -x127.0.0.1:80 test.com/admin/        //可以正常访问



2.匹配正则

# vim /usr/local/nginx/conf/vhost/test.com.conf


这里匹配upload或image目录,以.php结尾的都给拒绝掉

试验

# mkdir /data/wwwroot/test.com/upload/

# echo "11111" > /data/wwwroot/test.com/upload/1.php

#  curl  -x127.0.0.1:80 test.com/upload/1.php

查看一下访问日志

#cat /tmp/1.log



3.根据user_agent限制

编辑配置文件

#vim /usr/local/nginx/conf/vhost/test.com.conf



检查语法重新加载

-t && -s reload

试验

# curl  -A "YoudaoBotdadfd" -x127.0.0.1:80 test.com/

# curl  # #curl  -x127.0.0.1:80 test.com/


另外如果要user_agent不区分大小写,需要在~后加*


可以看到重新加载配置文件后,代码变为403了


12.15 Nginx解析php相关配置

nginx默认是不能解析php的

# vim /data/wwwroot/test.com/3.php   //添加如下内容

# curl   -x127.0.0.1:80 test.com/3.php   //访问测试,不能解析


下面配置解析php

编辑配置文件

# vim /usr/local/nginx/conf/vhost/test.com.conf    //添加如下方框中的内容


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

检查语法重新加载

# /usr/local/nginx/sbin/nginx -t

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

测试

# curl   -x127.0.0.1:80 test.com/3.php    //可以解析php了



关于代码502的可能原因

有错误,看日志

首先要把日志记录模式改为debug

# vim /usr/local/nginx/conf/nginx.conf   //修改完主配置文件要进行重启/etc/init.d/nginx restart


# tail /usr/local/nginx/logs/nginx_error.log


1.配置socket文件路径错误   //这里故意改错把f删掉

#vim /usr/local/nginx/conf/vhost/test.com.conf

.检查语法,重新加载

测试,可以看到代码是502


查看错误日志



2.php配置文件是监听端口,不监听socket,而nginx是监听socket

# vim /usr/local/php-fpm/etc/php-fpm.conf


# /usr/local/php-fpm/sbin/php-fpm -t

# /etc/init.d/php-fpm reload

# netstat -lntp    

访问

#curl   -x127.0.0.1:80 test.com/3.php     //502

查看日志

改正这个问题需要修改php和nginx配置文件,使他们监听的内容一致,都是端口,或都是socket文件

这里来修改nginx进行监听端口,来改正

#vim /usr/local/nginx/conf/vhost/test.com.conf

访问测试,


3./data/wwwroot/test.com路径要写对,前后要对应


4.php配置文件中listen.mode要设置为666,不定义就会默认为660

下面监听socket并注释掉listen.mode


重启php服务再查看一下sock文件详情 ,可以看到普通用户(包括nginx的用户)是没有权限的

修改nginx配置文件仍监听socket,并进行访问测试,可以看到结果是502

日志显示权限不够


说明:因为socket文件默认权限是660,而nginx的用户和组都是nobody,因此默认是无法读取socket文件的,所以要进行权限设置为666。另一种方法就是,socket文件的属主。

5.还有一种特殊情况,就是php-fpm资源耗尽,这中情况需要去优化


12.16Nginx代理

代理应用场景:用户不能访问web服务器或者访问web服务器比较慢

配置方法

# cd /usr/local/nginx/conf/vhost

#  vim proxy.conf    //添加如下内容


检查语法重新加载-t && -s reload

测试,访问本机可以访问到论坛,配置成功







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值