कैसे कई लाइनों में nginx config विभाजित करने के लिए?


13

विशेष रूप से एचपीकेपी हेडर (या सामान्य रूप से अन्य लंबे हेडर) को कॉन्फ़िगर करते समय यह एक लाइन को कई पंक्तियों में नगीनक्स कॉन्फ़िगरेशन में विभाजित करने के लिए उपयोगी होगा।

यह वांछित परिणाम है:

pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg=";
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; 
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; 
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; 
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; 
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";

हालांकि ब्राउज़र के लिए यह केवल एक पंक्ति होनी चाहिए:

pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";

इसलिए मैंने कुछ चीजों की कोशिश की है, लेकिन मैं परिणामों से संतुष्ट नहीं हूं ...

पहला प्रयास: बस इसे विभाजित करें

add_header Public-Key-Pins '
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg=";
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec=";
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg=";
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg=";
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo=";
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";
'

यह काम करता है, लेकिन curlमैं यह देख सकता हूं कि ब्राउज़र सभी लाइन ब्रेक के साथ हेडर प्राप्त करता है ...

दूसरी कोशिश: बैकस्लैश

वास्तव में पहले से ही जुड़े लेख में स्कॉट हेल्मे इसकी सिफारिश करते हैं:

add_header Public-Key-Pins ' \
pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; \
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; \
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; \
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; \
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; \
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; \
'

हालाँकि मेरे मामले में इसने सिर्फ स्लैश जोड़े और उन्हें भी ब्राउज़र में वापस कर दिया, इसलिए यह काम नहीं करता है।

तो मैं यह कैसे कर सकता हूं?

बक्शीश

निश्चित रूप से हर पंक्ति के लिए टिप्पणियाँ एक भयानक जोड़ होगी:

pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg="; # current ECDSA
pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec="; # current RSA (nginx 1.11.0)
pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg="; # backup ECDSA 1
pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg="; # backup ECDSA 2
pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo="; # backup RSA 1
pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g="; # backup RSA 2

1
लुआ या पर्ल मॉड्यूल का उपयोग कर सकता है?
एलेक्सी टेन

क्या? मैं उसे कैसे कर सकता हूँ? लेकिन इसके अलावा मैं इसके लिए सीधे nginx config फाइल में एक समाधान चाहता हूं। मेरा मतलब है कि यह एक ऐसा असाधारण अनुरोध नहीं है जो एक विन्यास निर्देश के लिए कई लाइनों का उपयोग करने में सक्षम हो ... कम से कम यह है कि मैं क्या कर रहा हूं।
रग्क

यह अभी भी आपकी कॉन्फ़िग फ़ाइल में हो सकता है। यह सिर्फ एक सवाल है अगर आपके नगनेक्स को इनमें से किसी एक मॉड्यूल के साथ संकलित किया गया है।
अलेक्सई टेन

वर्तमान में इसे इन मॉड्यूल के साथ संकलित नहीं किया गया है (जब तक कि वे नगनेक्स द्वारा संकलित मॉड्यूल के डिफ़ॉल्ट सेट में नहीं हैं), लेकिन मैं निश्चित रूप से ऐसे मॉड्यूल के साथ एक संस्करण संकलित कर सकता हूं ... अगर यह इस "समस्या" को हल करने में मदद करता है।
रगड़

जवाबों:


8

आपको चर घोंसले पर विचार करने की आवश्यकता हो सकती है जो कुछ इस तरह दिखाई देगा:

set $PKP '';
set $PKP '${PKP}pin-sha256="X3pGTSOuJeEVw989IJ/cEtXUEmy52zs1TZQrU06KUKg=";'; # current ECDSA
set $PKP '${PKP}pin-sha256="MHJYVThihUrJcxW6wcqyOISTXIsInsdj3xK8QrZbHec=";'; # current RSA (nginx 1.11.0)
set $PKP '${PKP}pin-sha256="isi41AizREkLvvft0IRW4u3XMFR2Yg7bvrF7padyCJg=";';  # Backup ECDSA 1
set $PKP '${PKP}pin-sha256="I/bAACUzdYEFNw2ZKRaypOyYvvOtqBzg21g9a5WVClg=";';  # Backup ECDSA 2
set $PKP '${PKP}pin-sha256="Y4/Gxyck5JLLnC/zWHtSHfNljuMbOJi6dRQuRJTgYdo=";'; # backup RSA 1
set $PKP '${PKP}pin-sha256="/oCVQg3nP3DroGpFdAbaiYzenycUftqrH3LAyaIal2g=";';  # Backup RSA 2

add_header Public-Key-Pins $PKP;

यह वास्तव में एक अच्छा विचार है और यह काम करता है। यह अधिक वर्कअराउंड है, लेकिन यह निश्चित रूप से इसे करने का एक तरीका है।
रगड़

जब मैंने इसे सर्वर में डाला {} मुझे मिला: nginx: [emerg] अनपेक्षित "s"
Atombit

0

;विभाजक है

तो आप कई लाइनों पर चीजों को रख सकते हैं, बस अंतिम पंक्ति को केवल इसके साथ समाप्त कर सकते हैं ;


First try: Just split itअगर मैंने इसे सही तरीके से समझा तो मैंने यही कोशिश की । मुद्दा यह था कि क्लाइंट को सभी लाइन ब्रेक के साथ हेडर मिला था।
रगड

तब आपकी एकमात्र आशा सब कुछ एक पंक्ति में रख देती है। अगर आपका संपादक आपको परेशान करता है, तो उसे
बताइए
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.