J'ai déjà vu que MOOC utilise nginx pour déployer des ressources statiques, j'ai donc voulu essayer d'utiliser ngjinx pour déployer mes ressources. Nous avons maintenant besoin des questions suivantes :
/course/list
,我只能使用list.html
,我想让每个连接都不会出现.html
après l'URL ? Est-ce une réécriture de l'URL, ou est-il configuré avec l'emplacement ?
, mais elle ne correspondait pas, elle n'a donc pas été transmise au serveur proxy, mais la page statique s'est affichée normalement. /test/test.html
pour obtenir les données correctes. /products/getproducts/2
,确实转发到了:localhost:8086/products/getproducts/2
.
Première question :
Nginx peut facilement importer des données de requête dans le contrôleur frontal du framework tel que index.php à l'aide de la directive try_files :
Le contrôleur frontal index.php peut utiliser $_SERVER['REQUEST_URI'] pour obtenir la chaîne de paramètres d'URL /course/list. S'il y a des paramètres plus tard, tels que /course/list?page=2&tag=mysql. peut utiliser $_SERVER ['QUERY_STRING'] Obtenez la chaîne de requête page=2&tag=mysql, puis décodez-la vous-même et utilisez exploser pour diviser la chaîne avec & pour obtenir un tableau de paramètres similaire à $_GET. Vous pouvez également utiliser $_GET directement pour. obtenez le tableau de paramètres.
En bref, c'est l'entrée du programme index.php et le programme qu'il contient qui décident s'il faut charger le fichier statique HTML et le renvoyer, ou se connecter à la base de données pour le traitement.
Si vous souhaitez que Nginx détermine si le cache HTML est atteint, vous pouvez le configurer comme ceci :
Par exemple, lors de l'accès à /post/1024, Nginx tentera d'accéder aux fichiers suivants dans l'ordre donné par try_files :
/post/1024 ($uri représente le fichier)
/post/1024/ ($uri/ représente le répertoire)
/html/post/1024.html (/html$uri.html représente votre cache statique HTML)
Si ni l'un ni l'autre n'existe, les informations URI ainsi que les paramètres seront transmis à index.php pour traitement (le dernier /index.php?$args exprime cette signification).
Question 1, Vous pouvez utiliser la méthode de réécriture, par exemple :
Il est à noter que seules toutes les demandes commençant par cours seront réécrites
xxx.com/course/list -> xxx.com/course/list.html
xxx.com/course/list/sub -> xxx.com/course/list/sub.html
Question 2
.J'ai l'impression qu'il devrait y avoir d'autres configurations d'emplacement. Si cela vous convient, publiez l'intégralité de la configuration nginx