通过nginx转发实现外网访问内网图片

                      
                            <

通过nginx转发实现外网访问内网图片

比如我们想通过http://julytian.cn/business/111.jpg这个地址去访问内网http://192.168.0.2/business/111.jpg

实现如下

nginx配置

server

    {

        listen 80;

        #listen [::]:80;

        server_name xxxxxx ;

        index index.html index.htm index.php default.html default.htm default.php;

        root  /home/xxxx/public;


        #关键配置开始

        #关键配置在这里,如果浏览器含有business,那么就把我们当前的请求转发到内网的192.168.0.2

        #这样就实现了,输入域名访问一个不存在的资源的时候,访问到的是内网的资源

        location ^~ /business/ {

        proxy_redirect off;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-Host $host;

        proxy_set_header X-Forwarded-Server $host;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection "Upgrade";

        proxy_pass http://192.168.0.2;

    }

        #关键配置结束


        #这里则是我们自己网站所用框架的伪静态配置,无需理会

        location / {

            fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/xxxx:/tmp/:/proc/";

           if (!-e $request_filename) {

                rewrite  ^(.*)$  /index.php?s=/$1  last;

            }

        }


        #error_page   404   /404.html;


        # Deny access to PHP files in specific directory

        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }


        include enable-php-pathinfo.conf;


        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

        {

            expires      30d;

        }


        location ~ .*\.(js|css)?$

        {

            expires      12h;

        }


        location ~ /.well-known {

            allow all;

        }


        location ~ /\.

        {

            deny all;

        }


        access_log  /home/wwwlogs/mt.log;

    }


>