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