Nginx v1.27.0 में HTTP/2 और HTTP/3 का समर्थन करें

5 min

language: ja bn en es hi pt ru zh-cn zh-tw

नमस्ते, मैं अक्षम हूँ।
ऐसा लगता है कि टोक्यो में एक घर मिलने के बाद मैं फिर से वहीं आ गया हूँ जहाँ से शुरू किया था, और इन दिनों मुझे लगता है कि मुझे एक अच्छी संपत्ति मिल गई है। सबसे बुरा यह होगा कि मैं किसी शेयरहाउस में चला जाऊँगा।

इन दिनों, मेरे वर्तमान कार्यस्थल पर, मेरे सह-परियोजना सदस्यों ने कहा, 'चलो एक विदाई पार्टी करते हैं!' और मैं इसके लिए आभारी हूँ।
मैं वास्तव में सोचता हूँ कि मैं अपने जीवन में लोगों से धन्य हूँ।

वैसे, मैंने हाल ही में Deno को एक पुल रिक्वेस्ट भेजी थी, और उन्होंने एक मील का पत्थर निर्धारित किया है, इसलिए मुझे चिंता करने की ज़रूरत नहीं है और मैं बस स्रोत का अनुसरण कर सकता हूँ। Deno के Rust कोड की भारी मात्रा के लिए सबसे अच्छा समाधान खोजना, और यह सुनिश्चित करना कि एक मामूली सुविधा के लिए भी यथासंभव कम बदलाव हों, मुश्किल है क्योंकि दस्तावेज़ स्रोत कोड की तरह हैं, इसलिए मुझे विभिन्न चीजों को आज़माना होगा।
अगर यह काम नहीं करता है, तो मैं तब सोचूँगा जब यह काम नहीं करेगा।

Nginx के साथ HTTP/2 और HTTP/3 का समर्थन करें

जब मैं PHP डेवलपर रासमस लेरडॉर्फ का एक साक्षात्कार पढ़ रहा था, तो मैंने देखा कि वह HTTP/2 में भविष्य देख रहे थे, और मुझे आश्चर्य हुआ, 'मेरे Nginx सर्वर का क्या हुआ?' इसलिए मैंने इसे लागू करने का फैसला किया।
ऐसा लगता है कि Nginx का HTTP/3 समर्थन v1.25 या उसके बाद के संस्करणों में है, इसलिए मैंने संस्करण की जाँच की।

# nginx -v
nginx version: nginx/1.27.0

ऐसा लगता है कि यह समर्थित है।
मेरा Nginx pkg से स्थापित नहीं किया गया था, बल्कि मैंने इसे स्वयं बनाया था, इसलिए मुझे लगता है कि एक ही FreeBSD वातावरण में भी अंतर हो सकते हैं।

मैं जटिल चीजों के बारे में सोचे बिना इसे एक बार लागू करने की कोशिश करूँगा।

conf फ़ाइल में लिखना

यह केवल एक Nginx सर्वर है जो एक रिवर्स प्रॉक्सी के रूप में चल रहा है, इसलिए मैं इसे जल्दी से करूँगा।

server {
    listen 443 ssl;
    listen 443 quic reuseport;
    listen [::]:443 quic reuseport;

    http2 on;
    http3 on;
    server_name soulminingrig.com www.soulminingrig.com;

मुझे लगता है कि HTTP/3 कुछ ऐसा है जिसे Google बढ़ावा देने की कोशिश कर रहा है, और QUIC प्रोटोकॉल खुद Google द्वारा बनाया गया था।
हेडर जानकारी में निम्नलिखित जोड़ें:

        add_header Alt-Svc 'h3=":443"; ma=86400';
        add_header X-Content-Type-Options nosniff;

फिर, nginx -t के साथ परीक्षण करें और यदि कोई त्रुटि नहीं है तो पुनरारंभ करें।
चूंकि मैं रूट उपयोगकर्ता के रूप में काम कर रहा हूँ, इसलिए इसे इस प्रकार चलाएँ:

service nginx restart

और, ऐसा लगता है कि QUIC स्वयं 443/UDP का उपयोग करता है, इसलिए मुझे इस पोर्ट को खोलना होगा...
अध्याय 3 HTTP/3 का विस्तृत विवरण - QUIC का उपयोग कैसे करें और गति कैसे प्राप्त करें

वर्तमान में, कई कार्यान्वयन डिफ़ॉल्ट रूप से UDP पोर्ट 443 का उपयोग करते प्रतीत होते हैं।

जैसा कि ऊपर देखा गया है,

        add_header Alt-Svc 'h3=":443"; ma=86400';

चूंकि 443 पोर्ट सेट किया गया था, इसलिए 443 पोर्ट खोलना और यदि आप इसे बदलना चाहते हैं तो एक अलग पोर्ट खोलना ठीक रहेगा।

vim /etc/pf.conf

अब निम्नलिखित जोड़ें:

set skip on lo
exsrv1 = 167.179.75.206
~~~
# HTTP/3 Protocol
pass in inet proto udp from any to $exsrv1 port 443

अब, -nf विकल्प के साथ परीक्षण करें और फिर -f के साथ लागू करें।

pfctl -nf /etc/pf.conf
pfctl -f /etc/pf.conf

क्या यह ठीक से लागू हुआ?

यह जांचने का एक तरीका है कि क्या यह Curl के साथ लागू किया गया है, लेकिन ऐसे मामलों में, अपने नेटवर्क से असंबंधित स्थान से जांचना बेहतर होता है, इसलिए मैं इसे ब्राउज़र से जांचूँगा।
HTTP/3 चेक
Image
हाँ, यह काम कर गया!

कुछ लोग इसे और अधिक विस्तार से कॉन्फ़िगर करते हैं, लेकिन मुझे लगता है कि अभी के लिए यह पर्याप्त है।
तो, फिर मिलते हैं।

Related Posts