美文网首页
最简单的反向代理

最简单的反向代理

作者: ShootHzj | 来源:发表于2017-09-11 00:33 被阅读66次
    http {
      upstream rails_app {
        server 127.0.0.1:3000; //exactly what WEBrick listens
      }
      
      server {
        listen *:80;
        root /path/to/application/public;
        
        location / {
          proxy_paas http://rails_app;
        }
      }
    }
    

    这个配置文件接受80端口的请求,然后转发给3000端口,你已经把nginx至于WEBrick之前了。
    上面的配置还有一点不太合理,location会把所有的请求发送给WEBrick。
    我们希望把静态资源交给nginx处理,其他的资源交给WEBrick处理。

    server {
      listen *:80;
      root /path/to/application/public;
    
      location / {
        proxy_pass http://rails_app;
      }
      location /assets {
      }
    }
    

    我们用一个新的location块拦截 /assets前缀
    一个小提示,静态资源的存储往往有着HTTP缓存的头部。你可以这样完成

    location /assets {
      expires max;
      add_header Cache-Control public;
    }
    

    expire指令设置了过期和缓存控制。值可以是一个确切的日期,相对的时间,或者常数的最大值。当你设置为最大值时,nginx把Expires设置为"Thu, 31 Dec 2037 23:55:55 GMT",缓存控制设置为10年。

    尽管expire指令为我们设置了Cache-Control,我们依然需要一点点调整。默认情况下,Cache-Control把内容设置为私有的,但是既然assets一般来说是公共的,由所有用户共享, 可以把Cache-Control设置为public。
    如果你向/assets目录下发送一条web请求,你可以看到回应的http头部有

    $curl -I 127.0.0.1/assets/test.jpg
    HTTP/1.1 200 OK
    Server: nginx/1.4.6 (Ubuntu)
    Expires: Thu, 31 Dec 2037 23:55:55 GMT
    Cache-Control: max-age=315360000
    Cache-Control: public
    

    相关文章

      网友评论

          本文标题:最简单的反向代理

          本文链接:https://www.haomeiwen.com/subject/ibhxsxtx.html