Nginx防盜鏈配置須要與不記錄日誌和過時時間結合在一塊兒,由於都用到了location。php
打開配置文件,註釋掉一部份內容(紅框上方),添加內容(紅框部分),保存退出html
valid_referers none blocked server_names *.test.com ,定義referer白名單nginx
if ($invalid_referer) { return 403,if函數的意思是,若是不是白名單內的域名,返回值爲403vim
檢查配置文件語法正誤,並從新加載配置文件服務器
測試防盜鏈curl
不是白名單內的訪問,返回403;而白名單內的訪問,返回200,說明放到鏈設置成功。socket
location /admin/ide
{函數
allow 192.168.133.1;php-fpm
allow 127.0.0.1;
deny all;
}
location ~ .*(abc|image)/.*\.php$
{
deny all;
}
if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')
{
return 403;
}
編輯配置文件,添加內容(紅框中)
檢查配置文件語法正誤,並從新加載配置文件
測試
正則匹配
打開配置文件,添加內容,保存退出
檢查配置文件語法正誤,並從新加載配置文件
建立一個目錄和php文件
訪問測試,訪問php文件,提示403;訪問txt文件,成功
查看日誌
根據user_agent限制
打開配置文件vim /usr/local/nginx/conf/vhost/test.com.conf
添加內容
檢查配置文件語法正誤,並從新加載配置文件
訪問測試,模擬一個user_agent
Tomato改爲tomato,則提示200(可在配置文件中的匹配符號~後面加上*號,能夠忽略大小寫)
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;
}
打開配置文件vim /usr/local/nginx/conf/vhost/test.com.conf
添加內容,保存退出
建立一個php文件
訪問3.php,不能解析,直接出現源碼
從新加載配置文件
此時訪問3.php,能夠正常解析了
查看php-fpm.conf配置文件的監聽地址,這裏是什麼,那麼在Nginx的配置文件中就寫什麼
修改php-fpm.conf配置文件,改監聽端口
檢查語法對錯,從新加載配置文件
查看監聽端口
測試訪問,提示502
查看日誌
修改配置文件vim /usr/local/nginx/conf/vhost/test.com.conf
檢查語法對錯,從新加載配置文件
此時再訪問3.php,就不出現502了,解析正常
之後出現502報錯,就要查看Nginx和php-fpm中格式是否一致;fastcgi _param SCRIPT _FILENAME所在行的路徑要和root路徑一致。
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;
}
}
切換到/usr/local/nginx/conf/vhost/目錄下
建立代理服務器
server_name ask.apelearn.com,定義域名
proxy_pass http://121.201.9.155/,指定被代理的IP
proxy_set_header Host $host,$host指的是代理服務器的servername
檢查語法對錯,從新加載配置文件
測試
經過本地訪問遠程站點