10.13. nginx常用案例

10.13.1. 反向代理http

[root@localhost conf.d]# vim vhosts.conf

    upstream backend {
        server 172.18.46.152    weight=5;
        server 172.18.46.153;

    }

    server {
        listen 172.18.46.151:80;
        location / {
            proxy_pass http://backend;
        }
    }

[root@localhost conf.d]# for i in {1..10} ; do curl 172.18.46.151; done;
153
152
152
152
152
152
153
152
152
152

10.13.2. 反向代理mysql

stream {
    upstream mysqlsrvs {
    server 192.168.22.2:3306;
    server 192.168.22.3:3306;
    least_conn;
}
    server {
        listen 10.1.0.6:3306;
        proxy_pass mysqlsrvs;
    }
}

10.13.3. 动静分离

server {
        listen 80;
        server_name www.linuxpanda.tech.com;
        root /data/web1/;
        location / {
                proxy_pass http://172.18.46.152;
        }
        location ~* \.php$ {
                proxy_pass http://172.18.46.153;
        }
}

10.13.4. 防盗链

server {
        server_name www.b.com;
        root /data/web2;
        valid_referers none block server_names *.b.com  b.*  ~\.baidu\.;
        if ($invalid_referer) {
                return 403 http://www.magedu.com/;
        }
}

10.13.5. 代理服务器的缓存功能

server {
        listen 80;
        server_name www.linuxpanda.tech;
        root /data/web1/;

        proxy_cache proxycache;
        proxy_cache_key $request_uri;
        proxy_cache_valid 200 302 301 1h;
        proxy_cache_valid any 1m;

        add_header X-Via $server_addr;
        add_header X-Cache $upstream_cache_status;
        add_header X-Accel $server_name;

        location / {
                proxy_pass http://192.168.27.17;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        location ~* \.php$ {
                proxy_pass http://192.168.27.6;
        }
}