vim /usr/local/nginx/conf/vhost/test.com.conf = 默认虚拟主机配置防盗链
#防盗链核心配置
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ =表示匹配文件格式
{
expires 7d; = 保存7天
valid_referers none blocked server_names *.test.com ; = 匹配域名
if ($invalid_referer) {
return 403; = 域名匹配不成功返回403
}
access_log off;
}
配置完以后 -t && -s reload
[root@aming-01 test.com]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@aming-01 test.com]# /usr/local/nginx/sbin/nginx -s reload
测试防盗链:
[root@aming-01 test.com]# curl -e "http:www.test.com/1.txt" -x127.0.0.1:80 test.com/1.gif -I =测试防盗链需要指定 -e 然后格式必须使用 http 开头
HTTP/1.1 200 OK = 200状态码说明Ok
Server: nginx/1.12.1
Date: Thu, 26 Apr 2018 14:04:56 GMT
Content-Type: image/gif
Content-Length: 21
Last-Modified: Thu, 26 Apr 2018 13:48:21 GMT
Connection: keep-alive
ETag: "5ae1d8a5-15"
Expires: Thu, 03 May 2018 14:04:56 GMT
Cache-Control: max-age=604800
Accept-Ranges: bytes
vim /usr/local/nginx/conf/vhost/test.com.conf =虚拟主机配置文件
location /admin/
{
allow 192.168.133.1;
allow 127.0.0.1;
deny all;
}
配置文件里面的规则,nginx是一条一条匹配的如果第一条匹配成功那么就不会匹配下面的规则了。例如 配置里面 allow 127.0.0.1 如果访问的 IP是127.0.0.1 那么匹配第一条规则就直接允许访问,就不会匹配后面的其他规则,如果访问过来的是127.0.0.2那么就会直接deny 掉不允许访问。
allow=允许访问 deny=拒绝访问
还可以同样适用正则匹配,和user_agent限制
可以匹配正则
location ~ .*(abc|image)/.*\.php$
{
deny all;
}
根据user_agent限制
if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')
{
return 403;
}
deny all和return 403效果一样
vim /usr/local/nginx/conf/vhost/test.com.conf =虚拟主机配置文件
location ~ \.php$
{
include fastcgi_params; #fastcgi_pass 用来指定php-fpm监听的地址或者socket
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
}
Nginx代理分正向代理和反向代理。
http://blog.csdn.net/zjf280441589/article/details/51501408
Nginx代理是在一台代理服务器中自定义一个域名(这个域名基本上跟web服务器的域名相同),该域名指向一个IP(web服务器),然后将用户的请求通过这台代理服务器访问指定的IP所对应的web服务器。
首先创建一个新的配置文件:
[root@aminglinux-01 ~]# cd /usr/local/nginx/conf/vhost/
[root@aminglinux-01 vhost]#
[root@aminglinux-01 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;
}
}
测试本机访问论坛。
502问题汇总 http://ask.apelearn.com/question/9109
location优先级:http://blog.lishiming.net/?p=100