最簡單的反向代理

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端口的請求,然后轉發(fā)給3000端口,你已經(jīng)把nginx至于WEBrick之前了。
上面的配置還有一點不太合理,location會把所有的請求發(fā)送給WEBrick。
我們希望把靜態(tài)資源交給nginx處理,其他的資源交給WEBrick處理。

server {
  listen *:80;
  root /path/to/application/public;

  location / {
    proxy_pass http://rails_app;
  }
  location /assets {
  }
}

我們用一個新的location塊攔截 /assets前綴
一個小提示,靜態(tài)資源的存儲往往有著HTTP緩存的頭部。你可以這樣完成

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

expire指令設置了過期和緩存控制。值可以是一個確切的日期,相對的時間,或者常數(shù)的最大值。當你設置為最大值時,nginx把Expires設置為"Thu, 31 Dec 2037 23:55:55 GMT",緩存控制設置為10年。

盡管expire指令為我們設置了Cache-Control,我們依然需要一點點調(diào)整。默認情況下,Cache-Control把內(nèi)容設置為私有的,但是既然assets一般來說是公共的,由所有用戶共享, 可以把Cache-Control設置為public。
如果你向/assets目錄下發(fā)送一條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
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程,通過DNS域名解析服務器IP,并建...
    七寸知架構閱讀 81,723評論 21 356
  • Nginx簡介 解決基于進程模型產(chǎn)生的C10K問題,請求時即使無狀態(tài)連接如web服務都無法達到并發(fā)響應量級一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,199評論 0 9
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 1.簡介: ? Nginx:engine X ,2002年,開源,商業(yè)版? http協(xié)議:web服務器(類似于ht...
    尛尛大尹閱讀 1,999評論 0 3
  • 文/ 騎馬上岸的人 春夏秋冬 枷鎖一次次被打開 又被合攏 鳥雀進進出出 他們的巢穴 曾建在我的屋翎之上 誰曾想過要...
    騎馬上岸的人閱讀 454評論 3 5

友情鏈接更多精彩內(nèi)容