Nginx প্রক্সি

যখন webman-কে বাহ্যিক নেটওয়ার্ক থেকে সরাসরি অ্যাক্সেস প্রদান করতে হয়, তখন webman-এর সামনে একটি nginx প্রক্সি যোগ করার পরামর্শ দেওয়া হয়। এর ফলে নিম্নলিখিত সুবিধা পাওয়া যায়:

  • স্থির সম্পদ nginx দ্বারা প্রক্রিয়া করা হয়, webman ব্যবসায়িক যুক্তির দিকে মনোযোগ দিতে পারে
  • একাধিক webman উদাহরণ 80 এবং 443 পোর্ট শেয়ার করতে পারে, ডোমেইন নাম অনুযায়ী সাইটগুলি আলাদা করতে পারে, একটি সার্ভারে একাধিক সাইট চালাতে দেয়
  • php-fpm এবং webman আর্কিটেকচার একসাথে কাজ করতে সক্ষম করে
  • HTTPS-এর জন্য nginx প্রক্সি SSL সহ সহজ এবং আরও দক্ষ
  • বাহ্যিক নেটওয়ার্ক থেকে অবৈধ অনুরোধ কঠোরভাবে ফিল্টার করতে পারে

Nginx প্রক্সি উদাহরণ

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

server {
  server_name site_domain;
  listen 80;
  access_log off;
  # গুরুত্বপূর্ণ: root অবশ্যই webman-এর নিচের public ডাইরেক্টরি নির্দেশ করতে হবে, webman রুট ডাইরেক্টরি নয়
  root /your/webman/public;

  location / {
    try_files $uri @proxy;
  }

  location @proxy {
    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 "";
    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 রুট ডাইরেক্টরিতে সেট করবেন না, অন্যথায় ডেটাবেস কনফিগারেশনের মতো সংবেদনশীল ফাইল সহ আপনার সমস্ত ফাইল ইন্টারনেট থেকে ডাউনলোড এবং অ্যাক্সেসযোগ্য হতে পারে।