nginx反向代理使用示例

2015/09/20 linux

proxy_pass配置说明

结尾不带/

访问 www.hiapk.dev/templets/v1/def.css 时指向 http://hit.stat.hiapk.com/templets/v1/def.css 文件

        location ^~ /templets/ {
                proxy_pass http://hit.stat.hiapk.com;
        }

结尾带/

访问 www.hiapk.dev/templets/v1/def.css 时指向 http://hit.stat.hiapk.com/def.css 文件

        location ^~ /templets/ {
                proxy_pass http://hit.stat.hiapk.com/;
        }

实例: 将站点templets反代至外网域名

        location ^~ /templets/ {
                proxy_pass http://hit.stat.hiapk.com;
        }

实例: 如果本地uploads文件不存在则使用线上地址

		location ^~ /uploads/ {
                root /data/wwwroot;
                if ( !-e $request_filename){
                        proxy_pass http://p5.image.hiapk.com;
                }
        }

根据域名转发

根据域名自动转发到相应服务器的特定端口 /usr/local/nginx/conf/vhost/reverse-proxy.conf

server {
    listen       80;
    server_name  news.hiapk.dev;
    location / {
        proxy_redirect off;
		proxy_read_timeout 120;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.17.163.59:8202;
    }
    access_log /data/log/hiapk-news.access.log;
    error_log /data/log/hiapk-news.error.log;
}

server {
    listen       80;
    server_name  cms.hiapk.dev;
    location / {
        proxy_redirect off;
		proxy_read_timeout 120;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://172.17.163.59:8201;
    }
    access_log /data/log/hiapk-cms.access.log;
    error_log /data/log/hiapk-cms.error.log;
}

负载均衡

upstream monitor_server_news {
    server 172.17.163.59:8202;
    server 172.17.163.59:8203;
}

server {
    listen       80;
    server_name  news.hiapk.dev;
    location / {
        proxy_redirect off;
		proxy_read_timeout 120;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://monitor_server_news;
    }
    access_log /data/log/hiapk-news.access.log;
    error_log /data/log/hiapk-news.error.log;
}

Search

    Table of Contents