Seorang pemula menggunakan nginx, saya mempunyai beberapa soalan untuk pakar.
为情所困
为情所困 2017-05-16 17:23:54
0
2
541

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

为情所困
为情所困

membalas semua(2)
大家讲道理

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

習慣沉默

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!