最简单的反向代理
【摘要】 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://...
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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)