nginx—— if 语法使用案例
·
1、location 嵌套if
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream www_pool {
server 10.0.0.7:80 weight=1;
server 10.0.0.8:80 weight=1;
}
upstream bbs_pool {
server 10.0.0.7:8080 weight=1;
server 10.0.0.8:8080 weight=1;
}
upstream blog_pool {
server 10.0.0.7:8081 weight=1;
server 10.0.0.8:8081 weight=1;
}
upstream upload_pool {
server 10.0.0.7:8082 weight=1;
server 10.0.0.8:8082 weight=1;
}
server {
listen 80;
server_name www.etiantian.org;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
if ($request_uri ~* "/" ){ $request_uri:请求的RUL,匹配 www.etiantian.org,就跳转
proxy_pass http://blog_pool;
}
if ($request_uri ~* "/upload/" ){ 匹配 www.etiantian.org/upload/,就跳转
proxy_pass http://upload_pool;
}
if ($request_uri ~* ".*\.(jpg|png)$") { 匹配 www.etiantian.org/*.jpg|png,就跳转
proxy_pass http://www_pool;
}
if ($request_uri ~* ".*\.(php|php5)$"){ 匹配 www.etiantian.org/*.php|php5,就跳转
proxy_pass http://bbs_pool;
}
if ($http_user_agent ~* (AppEngine-Google|Sosospider|vivispider|YRSpider|trendictionbot|Tomato|QunarBot|jikespider|MJ12bot|HuaweiSymantecSpider|Spinn3r|QihooBot|sohu-search|yodao|YoudaoBot|robozilla|MJ12bot|NHN|Twiceler)){
return 403;
}
if ($http_user_agent ~* (Baiduspider|Googlebot|Sogou\ web\ spider)){ #这是跳转爬虫的规则
proxy_pass http://www_rocen_com;
}
}
}
其中$http_user_agent 表示nginx日志中的 "$http_user_agent"
log_format main '$remote_addr - $remote_user [$time_local] $http_host "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
其中 $request_uri 表示nginx日志中的 "$request"
log_format main '$remote_addr - $remote_user [$time_local] $http_host "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
更多推荐

所有评论(0)