1. 程式人生 > >Centos配置防盜鏈,及圖片不顯示的問題

Centos配置防盜鏈,及圖片不顯示的問題

------------LNMP-------------Nginx-----------------(第一種,LNMP顯示錯誤圖片error.jpeg)

      index.html               index.html                       conf

     smallcar.png            smallcar.png                   gif,png,bmp,swf

     errormeinv.png        errormeinv.png                error.jpeg

Nginx(源主機)192.168.1.101,www.test.com

安裝Nginx,設定網站的目錄在 /var/www/html/testcom下

[[email protected] ~]# cat /var/www/html/testcom/index.html

<h1>源主機</h1>

<img src="smallcar.png"/>

<img src="errormeinv.png"/>

[[email protected] ~]# ls /var/www/html/testcom/

error.jpg   errormeinv.png   error.png   index.html   smallcar.png

[[email protected] ~]#vim /usr/local/nginx/conf/nginx.conf


user  nginx nginx;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
	use epoll;
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  www.test.com;
	#listen       80;
        #server_name  www.test.com;
        charset utf-8;
        access_log  logs/www.test.log  main;

        location / {
            root   /var/www/html/testcom;
            index  index.php index.html index.htm;
	}

	location ~\.php$ {
	proxy_pass http://192.168.1.101:80;
	}
    #下面的段為註釋段A段
    # location ~\.(gif|jpg|jpeg|bmp|png|swf){
    # root /var/www/html/testcom;
    # }
    location ~* \.(gif|bmp|png|swf)$ {
    #下面的行為B行
        root /var/www/html/testcom; //有這行,本機能被正常解析,否則解析失敗顯示X
        valid_referers none blocked *.test.com test.com;
        if ($invalid_referer){
            rewrite ^/ http://www.test.com/error.jpeg;
            #return 403;
        }
    }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
    root   html;
    }
  }
}

LNMP(盜鏈機)192.168.1.100,www.amber.com

搭建LNMP,將Nginx的網站的目錄在/www.amber.com下

cat /www.amber.com/index.html

<h1>盜鏈</h1>

<img src="http://www.test.com/smallcar.png"/>

<img src="http://www.test.com/errormeinv.png"/>

本地測試:

在C:\Windows\System32\drivers\etc下的hosts檔案中新增IP地址和域名

如:

192.168.1.101   www.test.com

192.168.1.100  www.amber,com

本地通過域名進行訪問“ A” 這個註釋“B”這個不註釋

Nginx:www.test.com

//訪問的為Nginx伺服器中的內容。

LNMP:www.amber,com

//訪問的兩張圖片的因為被Nginx伺服器主機過濾掉了,顯示兩張error.jpeg;