十二周四次课(4月26日)

12.13 Nginx防盗链 12.14 Nginx访问控制 12.15 Nginx解析php相关配置 12.16 Nginx代理

扩展 502问题汇总 http://ask.apelearn.com/question/9109 location优先级 http://blog.lishiming.net/?p=100

Nginx防盗链

配置如下,可以和上面的配置结合起来 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 ; if ($invalid_referer) { return 403; } access_log off; }

Nginx访问控制

需求:访问/admin/目录的请求,只允许某几个IP访问,配置如下: location /admin/ { allow 192.168.1.33; allow 127.0.0.1; deny all; } mkdir /data/wwwroot/test.com/admin/ echo “test,test”>/data/wwwroot/test.com/admin/1.html -t && -s reload curl -x127.0.0.1:80 test.com/admin/1.html -I curl -x192.168.1.35:80 test.com/admin/1.html -I 可以匹配正则 location ~ .(abc|image)/..php$ { deny all; } 根据user_agent限制 if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato') { return 403; } deny all和return 403效果一样

Nginx解析php相关配置

配置如下: location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; #此处要与前面配置的scok文件一致, fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name; } 如果报错502 检查制定的sock文件路径 fastcgi_pass 用来指定php-fpm监听的地址或者socke 此处还要检查文件权限是不是666

Nginx代理

cd /usr/local/nginx/conf/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; } curl ask.apelean.com/robots.txt

# #robots.txt for MiWen #

User-agent: *

Disallow: /?/admin/ Disallow: /?/people/ Disallow: /?/question/ Disallow: /account/ Disallow: /app/ Disallow: /cache/ Disallow: /install/ Disallow: /models/ Disallow: /crond/run/ Disallow: /search/ Disallow: /static/ Disallow: /setting/ Disallow: /system/ Disallow: /tmp/ Disallow: /themes/ Disallow: /uploads/ Disallow: /url-* Disallow: /views/