nginx代理

जब webman को सीधे बाहरी नेटवर्क एक्सेस प्रदान करने की आवश्यकता होती है, तो webman के सामने एक nginx प्रॉक्सी जोड़ने की सिफारिश की जाती है, इसके अनेक फायदे हैं।

  • स्थैतिक संसाधन nginx द्वारा संसाधित किए जाते हैं, जिससे webman व्यवसायी लॉजिक पर ध्यान केंद्रित कर सकता है
  • कई webman को 80, 443 पोर्ट साझा करने की अनुमति देता है, विभिन्न साइटों को डोमेन के माध्यम से अलग करने के लिए, एक ही सर्वर पर कई साइटों को तैनात करने की अनुमति देता है
  • यह php-fpm और webman आर्किटेक्चर के सह-अस्तित्व को सक्षम बनाता है
  • nginx प्रॉक्सी SSL के माध्यम से https को सरल और प्रभावी बनाता है
  • यह बाहरी नेटवर्क से कुछ अवैध अनुरोधों को कड़ाई से छानने की क्षमता प्रदान करता है

nginx代理示例

upstream webman {
    server 127.0.0.1:8787;
    keepalive 10240;
}

server {
  server_name साइट का डोमेन नाम;
  listen 80;
  access_log off;
  # ध्यान दें, यहाँ यह निश्चित रूप से webman के अंतर्गत public निर्देशिका होनी चाहिए, webman के रूट निर्देशिका नहीं
  root /your/webman/public;

  location ^~ / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-e $request_filename){
          proxy_pass http://webman;
      }
  }

  # सभी .php फ़ाइलों को एक्सेस से इनकार करें
  location ~ \.php$ {
      return 404;
  }

  # .well-known निर्देशिका को एक्सेस करने की अनुमति दें
  location ~ ^/\.well-known/ {
    allow all;
  }

  # सभी . के साथ शुरू होने वाली फ़ाइलों या निर्देशिकाओं को एक्सेस से इनकार करें
  location ~ /\. {
      return 404;
  }

}

आमतौर पर, ऊपर दिए गए कॉन्फ़िगरेशन में डेवलपर को केवल server_name और root को वास्तविक मान में सेट करना होगा, अन्य फ़ील्ड को कॉन्फ़िगर करने की आवश्यकता नहीं है।

注意
विशेष ध्यान दें कि, root विकल्प को निश्चित रूप से webman के अंतर्गत public निर्देशिका में सेट किया जाना चाहिए, इसे सीधे webman निर्देशिका पर स्थापित न करें, अन्यथा आपकी सभी फ़ाइलें बाहरी नेटवर्क द्वारा डाउनलोड की जा सकती हैं, जिसमें डेटाबेस कॉन्फ़िगरेशन जैसी संवेदनशील फ़ाइलें शामिल हैं।