2016-05-27 24 views
6

bulunan bağlantıdan açıldığında sunulmayan. index dosya içeriği redisvalue olarak saklanır, domain/IP (Root) domain/IP vurulduğunda düzgün olarak nginx tarafından sunulmaktadır.404 sayfa url vurduğunuzda buldum ama düzgün ben <code>ember-app</code> statik dosyalarının sunulması <code>redis</code> ile <code>nginx-lua</code> modülü kullanıyorum dizin sayfasına

login sayfa bağlantıdan açılırsa, düzgün bir şekilde açılır. Ancak doğrudan URL'ye basarak veya sayfayı yeniledikten sonra nginx 404 not found verir. index dosyası, redis içeriğindedir ve dosyaların geri kalanı, CDN numaralı js numaralı derlemeden derlenmektedir. Aşağıdaki REDIS sunulmakta endeks dosyasından subroutes hizmet etmek için eklenecek olan nginx konum bloğu takiben nginx yapılandırma

server 
{ 
    listen 80 ; 
    server_name 52.74.57.154; 

    root /; 

default_type text/html; 
location =/{ 
    try_files $uri $uri/ /index.html?/$request_uri; 
    set_unescape_uri $key $arg_index_key; 
    set $fullkey 'ember-deploy-cli:index:${key}'; 

    content_by_lua ' 
       local redis = require "resty.redis" 
       local red = redis:new() 

       red:set_timeout(1000) -- 1 sec 



       local ok, err = red:connect("127.0.0.1", 6379) 
       if not ok then 
        ngx.say("failed to connect: ", err) 
        return 
       end 


     if ngx.var.key == "" then 
      --ngx.say("No Argument passed") 
      local res, err = red:get("ember-deploy-cli:index:current-content") 
      ngx.say(res) 
      return 
     end 
     local res, err = red:get(ngx.var.fullkey) 

     if res == ngx.null then 
      ngx.say("Key doesnt exist ") 
      return 
     end 
     ngx.say(res) 

    '; 
} 
+0

Sunucu yalnızca bir taneye yanıt verirken, biri postalama ve diğerini kullanıyor mu? – Randy

+0

@randy Nope, bunlar yalnızca GET istekleridir. 'Index' sayfasından bir linkten açıldığında,' alan-alan/oturum açma 'gibi, düzgün bir şekilde servis edilir. Ancak url çubuğuna basarak veya sayfayı yeniledikten sonra açıldığında, '404 sayfa bulunamadı' –

cevap

4

olduğunu. Detaylı bir açıklama ve tam nginx yapılandırması here bulunabilir.

# This block handles the subrequest. If any subroutes are requested than this rewrite the url to root and tries to render the subroute page by passing the subroute to index file (which is served by the redis). 
    location ~*/{ 
    rewrite ^/last; 
    } 
İlgili konular