LNMP(3) 静态文件不记录日志和过期时间、Nginx防盗链、Nginx访问控制、解析php

                    静态文件不记录日志和过期时间

进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

 

配置如下

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires      7d;    //过期时间

access_log off;

}

location ~ .*\.(js|css)$

{

expires      12h;

access_log off;

}


修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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


访问测试:

1.进入到主机访问目录:cd /data/wwwroot/test.com

2.创建测试文件:

vim 1.gif   vim 2.js


                Nginx防盗链

(其实就referer)

进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

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 ; //server_names可以不写,设置白名单

if ($invalid_referer) {

return 403;

}

access_log off;

}


修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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


测试防盗链 (-e +referer)

1.(不是制定的referer时报403)

vhost]# curl -e "http://www.baidu.com" -x127.0.0.1:80 test.com/1.gif -I

2.(是制定的referer时访问成功

curl -e "http://www.test.com" -x127.0.0.1:80 test.com/1.gif -I


            Nginx访问控制(重要)


1.针对目录做访问

进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

location /admin/       //针对/admin目录做访问控制

{

allow 192.168.136.133;

allow 127.0.0.1;

deny all;

}

(nginx中设置中不分,deny,allow 先后顺序)


事前已经创建了我们的控制访问目录/admin/


修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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


测试:

(1)设置有允许白名单的ip,访问成功:

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


(2)设置在没有允许的白名单的ip,访问不成功:(403)




2.针对某些目录以php结尾的文件做访问控制()

.针对目录做访问

进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

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

{

deny all;

}


修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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



测试:

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

2.在/upload/目录下创建1.php且写入内容“111”

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



访问测试:

(1)访问设置了访问控制的upload目录下的.php结尾的文件则403错误。

curl  -x192.168.136.150:80 test.com/upload/1.php

(2)访问设置了访问控制的upload目录下不是.php结尾的文件,则成功!



3.根据user_agent限制(防止cc攻击,“蜘蛛”爬虫)


进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

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

//加~* 匹配时不区分大小写 ,

{

return 403;

}

deny all和return 403效果一样


(针对Spider/3.0|YoudaoBot|Tomato,这种做访问控制)


测试:(curl -A "")


(严格匹配,区分大小写)



            Nginx解析php相关配置

此时我们的test.com还是不能解析php的

测试



Nginx解析php步骤:

进入到虚拟主机配置文件 cd /usr/local/nginx/conf/vhost

 编辑虚拟主机配置文件:vim test.com.conf  添加内容:

location ~ \.php$

{

include fastcgi_params;

fastcgi_pass unix:/tmp/php-fcgi.sock;  //如果sock的路径不正确,则会出现502

fastcgi_index index.php;

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

}



修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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


测试:

解析成功)



如果我们在虚拟主机配置文件中的sock文件出错则解析时会出现502报错


php-fpm的配置文件中定义.sock文件,及其路径

虚拟主机中添加解析php 配置内容时两者的sock文件应该一致。


(重启php-fpm服务;/etc.init.d/php-fpm restart)


如果我们的 /usr/local/php-fpm/etc/php-fpm.conf 配置文件中监听的:

不是: listen = /tmp/php-fcgi.sock

而是 :listen = 127.0.0.1:9000 是这种ip+端口


那么我们在虚拟主机配置文件中解析php配置内容也相应的修改:



修改完配置文件后:

(1)测试配置文件是否正确:

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

(2)加载一下配置文件:

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


所以当我们访问出现502报错时,先要检查

(1) /usr/local/php-fpm/etc/php-fpm.conf 配置文件中监听的sock文件

还是监听“ip+端口”

然后再虚拟主机配置文件中解析php配置内容也相应的修改

两者是否一致


(2)查看虚拟主机配置文件中解析php配置内容

(/usr/local/nginx/conf/vhost/test.com.conf)

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

这个内容的路径是否是虚拟主机访问文件路径

这两个图中路径一致才行。

3.如果监听sock文件的话,权限要为666

listen mode:666


(502报错,首先要看错误日志)










原文地址:http://blog.51cto.com/13589255/2090362

时间: 2024-10-11 06:09:56

LNMP(3) 静态文件不记录日志和过期时间、Nginx防盗链、Nginx访问控制、解析php的相关文章

48.Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 vim /usr/local/nginx/conf/nginx.conf //搜索log_format combined_realip //规则名字 除了在主配置文件nginx.conf里定义日志格式外,还需要在虚拟主机配置文件中增加 vim /usr/local/nginx/conf/vhost/test.com.conf 添加 access_log /tmp/1.log combined_realip; 这里的combined_realip就是在nginx.

四十八、Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间

一.Nginx访问日志 日志格式 # pwd /usr/local/nginx/conf [[email protected] conf]# vim nginx.conf log_format ELA '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; 解析

Nginx访问日志 Nginx日志切割 静态文件不记录日志和过期时间

一.Nginx访问日志#vim /usr/local/nginx/conf/nginx.conf日志格式的名字combined_realip可以自定义,例如将它修改为aming,注意,这里定义为什么,后面引用的时候就定义为什么(nginx配置文件看见分号才是这一行结束)#vim /usr/local/nginx/conf/vhost/test.com.conf //增加如下一行#/usr/local/nginx/sbin/nginx -t#/usr/local/nginx/sbin/nginx

Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间介绍

Nginx访问日志 1. 进入配置文件 [[email protected] src]# vim /usr/local/nginx/conf/nginx.conf  //搜索log_format 参考更改配置成如下: log_format aming '$remote_addr $http_x_forwarded_for [$time_local]' 如图: 日志格式字段含义如下: combined_realip为日志格式的名字,后面可以调用它. 2.到虚拟主机配置文件中指定访问日志的路径 [[

Nginx的访问日志、Nginx的日志切割、Nginx静态文件不记录日志和过期时间

Nginx的访问日志 Nginx的日志切割 Nginx静态文件不记录日志和过期时间 原文地址:http://blog.51cto.com/13515599/2086909

十二周三课 Nginx访问日志、 Nginx日志切割、 静态文件不记录日志和过期时间

Nginx访问日志 Nginx的文件格式存在于主配置文件中./usr/local/nginx/conf/nginx.conf然后搜索log_format找到他的配置文件这样我们就可以进行日志的格式配置了. 我们常用如下配置.$remote_addr客户端IP(公网IP)$http_x_forwarded_for代理服务器的IP$time_local服务器本地时间$host访问主机名(域名)$request_uri访问的url地址$status状态码$http_refererreferer$htt

Nginx访问日志、日志切割、静态文件不记录日志和过期时间

Nginx访问日志 Nginx访问日志主要有两个参数控制:log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)access_log #用来指定日至文件的路径及使用的何种日志格式记录日志 设置访问日志的格式,打开配置文件vim /usr/local/nginx/conf/nginx.conf 搜索关键字log_format就可以找到日志格式配置行log_format语法格式及参数语法说明如下:$remote_addr客户端IP(公网IP)$http_x_forwa

Nginx访问日志、 Nginx日志切割、静态文件不记录日志和过期时间

1.Nginx访问日志 配制访问日志:默认定义格式: log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';  (这是定义日志引用时的名字:combined_realip,后面的内容,就是需要被引用的)可以理

nginx访问日志、Nginx日志切割、 静态文件不记录日志和过期时间

一:nginx访问日志 日志格式vim /usr/local/nginx/conf/nginx.conf //搜索log_format$remote_addr 客户端ip(公网ip)$http_x_forwarded_for 代理服务器的ip$time_local 服务器本地时间$host 访问主机名(域名)$request_uri 访问的url地址$status 状态码$http_referer referer$http_user_agent user_agent除了在主配置文件nginx.c