Memisahkan garis panjang dalam file konfigurasi nginx

15

Agar tidak membuang sampah ke back-end, saya memiliki regex yang ketat untuk locationarahan. Ini terlihat seperti ini:

location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/...(more|restrict).ext {
    # other directives
}

Saya ingin melipat garis pada 80 karakter, apakah ada cara untuk membagi konfigurasi? Berikut ini menghasilkan kesalahan sintaks, tetapi sesuatu yang saya cari:

location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/"\
            "...(more|restrict).ext" {
# results in a literal newline (%0A) being accepted
location ^~ "/(some|stuff|more|bar|etc(-testing)?)/[a-zA-Z0-9]+/
...(more|restrict).ext" {

Saya tidak dapat menemukan petunjuk dalam dokumentasi ( http://wiki.nginx.org/ConfigNotation atau http://wiki.nginx.org/HttpCoreModule#lokasi menyebutkan apa pun tentang melipat garis)

Lekensteyn
sumber
Bisakah Anda membuat string Anda dari beberapa fragmen yang diinterpolasi? (Saya tidak tahu)
bsb
@bsb Anda tidak bisa menggunakan variabel dalam ekspresi lokasi, jadi tidak, Anda tidak bisa mengatur variabel dan menggunakan interpolasi string.
Lekensteyn

Jawaban:

7

Saya tidak berpikir Anda bisa melakukan ini.

nginx memperlakukan semua spasi putih dengan sama, jadi bahkan jika Anda mencoba untuk membagi string Anda seperti itu, dan nginx dapat menguraikannya seperti yang Anda inginkan, Anda akan berakhir dengan regex dengan banyak spasi putih di dalamnya, yang saya yakin bukan t apa yang kamu inginkan. Jika nginx tidak dapat menguraikannya, yang lebih mungkin, Anda hanya akan mendapatkan kesalahan sintaksis.

Anda hanya harus hidup dengan beberapa garis panjang, atau membuat ekspresi reguler yang tidak terlalu rumit.

Michael Hampton
sumber
Nah, jika tidak ada ruang utama, saya bisa hidup dengan itu. Tetapi suatu baris baru tampaknya ditafsirkan secara harfiah juga.
Lekensteyn
Ini benar-benar bukan akhir dari dunia. :)
Michael Hampton
1
Untuk saat ini saya terjebak dengan location ".../[a-zA-Z0-9_...-]+$"pola yang diikuti oleh location ~ "\.pkg\.tar\.xz$"bagian dalam yang lain . Terima kasih atas jawaban Anda, semoga suatu hari jawaban yang lebih baik akan muncul;)
Lekensteyn