1、防盗链有两种实现方式
第一种采用了URL重写模块
location ~.*\.(jpg|gif|png)$ { valid_referers none blocked *.demo.com demo.com 192.168.1.175; if ( $invalid_referer ) { #rewrite ^/ 错误跳转链接; return 403; } }
解析:判断文件是jpg,gif,png格式的(自己可以随意设置一些文件的后缀),则做以下操作
valid_referers 后边设置为none,是允许本网站访问
blocked 后为允许访问的链接,地址
第二种采用nginx_accesskey模块进行配置
首先我们需要下载 Nginx-accesskey-2.0.3.tar.gz安装包,解压后打开config文件,修改HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESSKEY_MODULE"为
HTTP_MODULES="$HTTP_MODULES ngx_http_accesskey_module",
然后保存退出
我们可以在phpinfo()中查看时候安装成功这个模块。
下一步就是配置文件中进行配置
location /download { accesskey on; accesskey_hashmethod md5; accesskey_arg "key"; accesskey_signature "mypass$remote_addr"; }解析:给download文件夹下的文件进行防盗设置
访问测试脚本如下:
<?php $ipkey= md5("mypass".$_SERVER['REMOTE_ADDR']); $output_add_key="<a href=http://www.example.cn/download/G3200507120520LM.rar?key=".$ipkey."> download_add_key</a>"; $output_org_url="<a href=http://www.example.cn/download/G3200507120520LM.rar>download_org_path</a>"; echo $output_add_key; echo "<br>"; echo $output_org_url; ?>
访问第一个download_add_key链接可以正常下载,第二个链接download_org_path会返回403 Forbidden错误。
2、动静分离
所谓动静分离就是将静态页面和静态页面分开来访问,我们可以做个判断在配置文件中
location ~ (\.php)$ { proxy_pass http://192.168.1.175:80; }
判断是动态页面,则访问后边的地址。
3、缓存
①、在配置文件中配置
proxy_cache_path /data/nginx/cache/webserver levels=1:2 keys_zone=webserver:20m max_size=1g; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://webservers; proxy_set_header X-Real-IP $remote_addr; proxy_cache webserver; proxy_cache_valid 200 10m; } }
配置后重启,重启错误,调试一下空格就好了
②、创建缓存目录
mkdir -pv /data/nginx/cache/webserver
③、访问我们就可以用调试工具看到是否是缓存,是缓存就可以看见 X-cache=HIT
4、负载均衡
所谓负载均衡就是就是调节服务器的平衡力,让服务器的承受能力平均一下
配置如下:
Upstream 自定义域名 { server 192.168.1.252:80; server 192.168.1.253:80; } server { listen 80; server_name localhost; ……………… location / { proxy_pass http://自定义域名 proxy_set_header Host $host; proxy_set_header X-Peal-IP $remote_addr; proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; } }
这样无论我们有多少台服务器就添加多少台,可以实现服务器的均衡
5、反向代理
所谓反向代理就是定义这台服务器反过来代理另一台自己指定的服务器
配置如下
location / { proxy_pass 需要代理的服务器IP; }
特别注意,以上配置配置完成后都要重新加载下nginx
重新加载命令 nginx -s reload
如果经过多次测试都不好使,那么 就将nginx的进行杀死之后在启动nginx
查看进程 ps aux | grep nginx 杀死 kill -9 进程号