J'ai un petit périphérique Linux embarqué exécutant Nginx. Je peux me connecter sur le réseau et accéder aux terminaux sur un PC dans Chrome ou Firefox. Ma page par défaut contient une balise HTML qui pointe vers "loading.jpeg", qui se trouve sur le périphérique dans /tmp/nginx/loading.jpeg. Je peux taper dans le navigateur: http://192.168.0.4/loading.jpeg et voir mon image. Je peux également visiter le point de terminaison qui rend html et voir mon image rendue correctement.La page par défaut de Nginx et la directive de serveur Web racine
Maintenant, je veux être en mesure de visiter la page racine: http://192.168.0.4/ dans un navigateur et de rediriger cela vers ma page par défaut qui devrait rendre le code HTML et montrer l'image. Le problème est que si je place une page pour l'emplacement "/" par défaut, ma directive racine du serveur web pointant vers/tmp/nginx ne fonctionne plus. Donc, je reçois ma page affichée, mais l'image loading.jpeg est introuvable. J'ai essayé de rediriger la requête root vers ma page par défaut, mais cela casse aussi la racine du serveur web.
Comment puis-je rendre une page Web par défaut pour Nginx, tout en faisant en sorte que mon serveur web soit respecté? Je vous remercie.
Cela ne fonctionne pas (racine du serveur Web est cassé - bien que page Web par défaut prévu est affichée):
location/{
default_type text/html;
content_by_lua_file /sbin/http/serve_stream.lua;
## The streaming endpoint
location /streaming {
default_type text/html;
content_by_lua_file /sbin/http/serve_stream.lua;
}
Voici mon nginx.conf actuel sans redirection:
## Setup server to handle URI requests
server {
# Setup the root
root /tmp/nginx;
## Port
listen 80; ## Default HTTP
## Android phones from Ice Cream Sandwich will try and get a response from
server_name
clients3.google.com
clients.l.google.com
connectivitycheck.android.com
apple.com
captive.apple.com;
## We want to allow POSTing URI's with filenames with extensions in them
## and nginx does not have a "NOT MATCH" location rule - so we catch all
## and then selectively disable ones we don't want and proxy pass the rest
location/{
# For Android - Captive Portal
location /generate_204 {
return 204;
}
# For iOS - CaptivePortal
if ($http_user_agent ~* (CaptiveNetworkSupport)) {
return 200;
}
## Raw WebSocket
location /ws {
lua_socket_log_errors off;
lua_check_client_abort on;
default_type text/html;
content_by_lua_file /sbin/http/websocket.lua;
}
## The streaming endpoint
location /streaming {
default_type text/html;
content_by_lua_file /sbin/http/serve_stream.lua;
}
## We can have file extensions in POSTing of /blahendpoints for filesystem
## control HTTP commands
location ~ "\.(txt|bin)$" {
...
}
}
}