Rumah  >  Soal Jawab  >  teks badan

Seorang pemula menggunakan nginx, saya mempunyai beberapa soalan untuk pakar.

Saya melihat sebelum ini MOOC menggunakan nginx untuk menggunakan sumber statik, jadi saya ingin mencuba menggunakan ngjinx untuk menggunakan sumber saya. Sekarang kita memerlukan soalan berikut:

  1. Sebagai contoh, pautan ini pada MOOC: http://www.imooc.com/course/list, bagaimanakah ia sepadan dengan akhiran /course/list,我只能使用list.html,我想让每个连接都不会出现.html selepas URL Adakah ini menulis semula URL, atau adakah ia dikonfigurasikan dengan lokasi?
2.


Di atas ialah konfigurasi lokasi, digunakan untuk proksi terbalik Ia sepatutnya tidak dapat memadankan sesuatu seperti

, tetapi ia tidak sepadan, jadi ia tidak dimajukan ke pelayan proksi, tetapi halaman statik dipaparkan seperti biasa. /test/test.html

Tetapi ia boleh dipadankan seperti ini:

untuk mendapatkan data yang betul. /products/getproducts/2,确实转发到了:localhost:8086/products/getproducts/2

Mari kita tanya kedua-dua ini saya tidak tahu banyak tentang pelayan, jadi saya mungkin agak bodoh, saya harap anda boleh menjawabnya

为情所困为情所困2713 hari yang lalu548

membalas semua(2)saya akan balas

  • 大家讲道理

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

    Soalan pertama:
    Nginx menggunakan arahan try_files untuk mengimport data permintaan dengan mudah ke dalam pengawal bahagian hadapan rangka kerja seperti index.php:

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

    Pengawal bahagian hadapan index.php boleh menggunakan $_SERVER['REQUEST_URI'] untuk mendapatkan rentetan parameter URL /course/list Jika terdapat parameter kemudian, seperti /course/list?page=2&tag=mysql, anda boleh menggunakan $_SERVER ['QUERY_STRING'] Dapatkan halaman rentetan pertanyaan=2&tag=mysql, kemudian urldecode sendiri dan gunakan explode untuk memisahkan rentetan dengan & untuk mendapatkan tatasusunan parameter yang serupa dengan $_GET Anda juga boleh menggunakan $_GET terus dapatkan tatasusunan parameter.

    Ringkasnya, index.php pintu masuk program dan program di dalamnya yang memutuskan sama ada untuk memuatkan fail statik HTML dan mengembalikannya, atau menyambung ke pangkalan data untuk diproses.
    Jika anda mahu Nginx menentukan sama ada cache HTML dipukul, anda boleh mengkonfigurasinya seperti ini:

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

    Sebagai contoh, apabila mengakses /post/1024, Nginx akan cuba mengakses fail berikut mengikut susunan yang diberikan oleh try_files:
    /post/1024 ($uri mewakili fail)
    /post/1024/ ($uri/ mewakili direktori)
    /html/post/1024.html (/html$uri.html mewakili cache statik HTML anda)
    Jika kedua-duanya tidak wujud, maklumat URI bersama-sama dengan parameter akan diserahkan kepada index.php untuk diproses ( /index.php?$args terakhir menyatakan maksud ini).

    balas
    0
  • 習慣沉默

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

    Soalan 1, Anda boleh menggunakan kaedah tulis semula, contohnya:

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

    Perlu diingat bahawa hanya semua permintaan bermula dengan kursus akan ditulis semula
    xxx.com/course/list -> xxx.com/course/list.html
    xxx.com/course/list/sub -> xxx.com/course/list/sub.html

    Soalan 2
    Saya rasa seperti perlu ada konfigurasi lokasi lain Jika sesuai, siarkan keseluruhan konfigurasi nginx

    balas
    0
  • Batalbalas