একটি এনজিনেক্স কনফিগারেশন ফাইলটিতে দীর্ঘ লাইনগুলি বিভক্ত করা


15

পিছনে-আবর্জনায় আবর্জনা পাস না করার জন্য, আমার কাছে একটি locationনির্দেশের জন্য কঠোর রেজেক্স রয়েছে । দেখে মনে হচ্ছে:

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

আমি ৮০ টি অক্ষরে লাইনটি ভাঁজ করতে চাই, কনফিগারেশনটি আলাদা করার কোনও উপায় আছে কি? নীচের ফলাফলটি একটি সিনট্যাক্স ত্রুটির ক্ষেত্রে ঘটে তবে এটি এমন একটি যা আমি সন্ধান করছি:

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" {

আমি ডকুমেন্টেশনে ইঙ্গিতগুলি খুঁজে পাইনি ( http://wiki.nginx.org/ConfigNotation বা http://wiki.nginx.org/HttpCoreModule# স্থানীয় অবস্থান ভাঁজ লাইন সম্পর্কে কিছু উল্লেখ করে)


আপনি একাধিক টুকরো টুকরো টুকরো টুকরো থেকে নিজের স্ট্রিংটি তৈরি করতে পারবেন? (আমার কোনও ধারণা নেই)
বিএসবি

@bsb আপনি লোকেশন এক্সপ্রেশনগুলিতে ভেরিয়েবল ব্যবহার করতে পারবেন না, তাই না, আপনি ভেরিয়েবল সেট করতে পারবেন না এবং স্ট্রিং ইন্টারপোলেশন ব্যবহার করতে পারবেন না।
লেকেনস্টেইন

উত্তর:


7

আমি মনে করি না আপনি এটি করতে পারেন।

এনজিনেক্স সমস্ত শ্বেত স্পেসকে সমানভাবে আচরণ করে, তাই আপনি যদি নিজের স্ট্রিংটিকে সেভাবে ভাগ করার চেষ্টা করেন এবং এনজিনেক্স আপনার ইচ্ছা অনুসারে এটি পার্স করতে পারেন, তবে আপনি একটি রেগেক্সের সাথে একগুচ্ছ হোয়াইটস্পেস রেখে যাবেন, যা আমি নিশ্চিত ' আপনি কি চান। যদি এনজিনেক্স এটি বিশ্লেষণ করতে না পারে, যা সম্ভবত বেশি হয় তবে আপনি কেবল একটি বাক্য গঠন ত্রুটি পেয়ে যাবেন।

আপনাকে কেবল কয়েকটি দীর্ঘ লাইন নিয়ে বাঁচতে হবে, বা কম জটিল নিয়মিত ভাব প্রকাশ করবেন।


ঠিক আছে, যদি শীর্ষস্থানীয় স্থান নাও থাকতে পারে তবে আমি তার সাথে থাকতে পারি। তবে একটি নতুন লাইন আক্ষরিক পাশাপাশি ব্যাখ্যা করা হয় বলে মনে হয়।
লেকেনস্টেইন

সত্যিই এটি বিশ্বের শেষ নয়। :)
মাইকেল হ্যাম্পটন

1
আপাতত আমি location ".../[a-zA-Z0-9_...-]+$"অন্য একটি location ~ "\.pkg\.tar\.xz$"অভ্যন্তর অনুসরণ করে একটি ধরণ দিয়ে আটকে আছি । আপনার উত্তরের জন্য ধন্যবাদ, আশা করি কোনও দিন এর চেয়ে ভাল উত্তর প্রদর্শিত হবে;)
লেকেনস্টেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.