3
回答
linux 下的一个很奇怪的问题 nginx hosts
华为云实践训练营,热门技术免费实践!>>>   

我想配置一台图片缓存服务器 用 centos  + nginx 

centos 我配置了 nginx 反向代理,并且我修改了 centos   /etc/hosts 文件   如下:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 img1.xx.com

127.0.0.1 img2.xx.com

127.0.0.1 img3.xx.com

127.0.0.1 img4.xx.com

127.0.0.1 img5.xx.com

我本地电脑 window 修改 hosts 文件 指向我这台 centos 服务器(ip:111.93.36.15),本地hosts 如下:

111.93.36.15 img1.xx.com
111.93.36.15 img2.xx.com
111.93.36.15 img3.xx.com
111.93.36.15 img4.xx.com
111.93.36.15 img5.xx.com

然后我本地访问  http://img1.xx.com/2343/234242512523.jpg   竟然可以访问!??

我想的是应该不可以访问才对,

1、我打开浏览器输入 http://img1.xx.com/2343/234242512523.jpg

这时候 浏览器请求的是 centos 这台服务器 上的nginx 

2、nginx 我配置了 proxy 反向代理,

nginx 会把用户的访问请求,转发给 proxy_pass http://img1.xx.com

但是我在centos 中把 img1.xx.com   绑定到 127.0.0.1 了

为什么 nginx 还是可以获得到 图片呢?

nginx 配置如下:

nginx.conf

#img1.xx.com
	server {
        listen       80;
        server_name  img1.xx.com;
        location / {
            root   /www/img1.xx.com;
			expires max;
			proxy_store on;
			proxy_store_access user:rw group:rw all:rw;
			proxy_temp_path /www/img1.xx.com;
			include proxy.conf;
			if ( !-e $request_filename) {
				proxy_pass  http://img1.xx.com;
			}			
            #index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

proxy.conf

proxy_redirect          off;
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_set_header        Accept-Encoding 'gzip';
client_max_body_size    100m;
client_body_buffer_size 256k;

proxy_connect_timeout   60;
proxy_send_timeout      60;
proxy_read_timeout      60;

proxy_buffer_size       512k;
proxy_buffers           8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
举报
foxidea
发帖于5年前 3回/2K+阅
顶部