Ich verwende nginx-lua
Modul mit redis
statische Dateien von ember-app
dienen. Der index
Dateiinhalt wird in redis
als value
gespeichert, das ordnungsgemäß von nginx
bedient wird, wenn das (Stamm) domain/IP
erreicht wird.404-Seite nicht gefunden, wenn eine URL getroffen wird, aber ordnungsgemäß beim Öffnen von der Verknüpfung auf der Indexseite
Wenn login
Seite von Link geöffnet ist, wird es ordnungsgemäß geöffnet. Aber wenn sie direkt durch Drücken der URL-Leiste oder Aktualisieren der Seite geöffnet wird, gibt das Nginx 404 not found
. Die index
Datei befindet sich in redis
und der Rest der Dateien wird von kompilierten js
geliefert, die auf einem CDN
vorhanden ist. Folgende ist die Konfiguration nginx
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)
';
}
Verwendet man Post und die andere bekommen, während der Server nur auf einen antwortet? – Randy
@randy Nein, das sind nur GET-Anfragen. Wie 'mydomain/login' wenn es über einen Link von der' index' Seite geöffnet wird, wird es richtig bedient. Wenn sie jedoch durch Klicken auf die URL-Leiste oder durch Aktualisieren der Seite geöffnet wird, wird "404-Seite nicht gefunden" angezeigt –