recherche

Maison  >  Questions et réponses  >  le corps du texte

Débutant utilisant nginx, j'ai quelques questions pour les experts.

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 :

  1. Par exemple, ce lien sur le MOOC : http://www.imooc.com/course/list, comment correspond-il au suffixe /course/list,我只能使用list.html,我想让每个连接都不会出现.html après l'URL ? Est-ce une réécriture de l'URL, ou est-il configuré avec l'emplacement ?
2.


Ce qui précède est une configuration d'emplacement, utilisée pour le proxy inverse. Elle ne devrait pas pouvoir correspondre à quelque chose comme

, 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

Mais cela peut correspondre comme ceci :

pour obtenir les données correctes. /products/getproducts/2,确实转发到了:localhost:8086/products/getproducts/2

Demandons d'abord à ces deux-là. Je ne connais pas grand-chose aux serveurs, donc je suis peut-être un peu idiot, j'espère que vous pourrez y répondre

.

为情所困为情所困2870 Il y a quelques jours628

répondre à tous(2)je répondrai

  • 大家讲道理

    大家讲道理2017-05-16 17:25:54

    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 :

    location {
        try_files $uri $uri/ /index.php?$args;
    }
    

    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 :

    location / {
        try_files $uri $uri/ /html$uri.html /index.php?$args;
    }
    

    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).

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-16 17:25:54

    Question 1, Vous pouvez utiliser la méthode de réécriture, par exemple :

    rewrite "^/(course/.*)/?"   .html last;
    

    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

    .

    répondre
    0
  • Annulerrépondre