আমি বেশিরভাগ গনকন / মোড_উজি অ্যাপ্লিকেশনগুলির সামনে এবং অবশ্যই সার্ভারের স্ট্যাটিক ফাইলগুলিতে বিপরীত ক্যাচিনিং প্রক্সি হিসাবে এনগিনেক্স ব্যবহার করছি।
আমি দেখতে পাই যে দ্রুত আমার এনজিএনএক্স কনফিডগুলি বজায় রাখা অসম্ভব হয়ে পড়ে; সমস্যাটি হ'ল আমার কাছে কয়েকটি প্যাটার্ন রয়েছে যা একই রকম (বা এমনকি অভিন্ন) তবে আমি এটি পরিষ্কার করার জন্য পরিচালনা করতে পারি না।
আমার কাছে সবচেয়ে বড় সমস্যাটি হ'ল আমি কনফিডগুলির একটি গোষ্ঠী গোছানোর জন্য নামকরণ করা অবস্থানগুলি ব্যবহার করতে পছন্দ করব eg
location @django_modwsgi {
include proxy.conf;
proxy_pass http://127.0.0.1:8080;
}
location @django_gunicorn {
include proxy.conf; # this could also be included directly in the server {} block?
proxy_pass http://gunicorn_builder;
}
বিশেষ দ্রষ্টব্য। ইস্যু করা হয় না উভয় gunicorn এবং wsgi হচ্ছে। এটি কেবল একটি উদাহরণ। আর একটি হ'ল:
location @namedlocation_1 {
some cache settings;
some cache_key settings;
ignore some headers;
expires;
proxy_pass
}
location @namedlocation_2 {
other cache settings;
other cache_key settings;
ignore some headers;
expires;
proxy_pass
}
তবে একটি নামকৃত স্থানে কল করার জন্য কেবলমাত্র আমি খুঁজে পেয়েছি:
location /somelocation {
try_files $uri @named_location;
}
এটি ইতিমধ্যে ঠিক মনে হচ্ছে না, আমি চাই না যে nginx স্থির ফাইলগুলি সন্ধান করুন, আমি এটি সরাসরি নামক স্থানে যেতে চাই! কোনও নামকৃত স্থানকে সরাসরি "কল" করার কোনও উপায় আছে ?!
আমি শুকনো যেতে যেতে ভেবেছিলাম অন্য উপায় হ'ল প্রচুর include
...
location /somelocation {
include django_unicorn.conf;
}
তবে এটি কি এটি করার একটি ভাল উপায়? এটি খুব জেনেরিক সেটিংসের জন্য ঠিক আছে (উদাহরণস্বরূপ, প্রক্সি বেশী), তবে সম্পূর্ণ কনফারেন্স পেতে বিভিন্ন ফাইল খোলার দরকার পড়ার মতো নয়।
এছাড়াও, কিছু ক্ষেত্রে আমি একটি রেজিপ্স্পের সাথে কয়েকটি লোকেশনকে গ্রুপ করতে পারি তবে আমি কেবল তখনই এটি করতে পছন্দ করি যখন তারা কেবলমাত্র একই ব্লকে সাধারণ সেটিংস রাখতে সক্ষম না হয়ে যুক্তিযুক্তভাবে সম্পর্কিত হয়।
প্রশ্নটি
ভাল, ডিআরওয়াই এনজিনেক্স কনফিগারেশন লেখার জন্য কি কোনও "অফিসিয়াল" সেরা অনুশীলন রয়েছে?
আমি যেমন একটি প্যাটার্ন সন্ধান করতে চাই:
location / {
common confs
try_files $uri @name_location
}
** তবে আমি কীভাবে বিভিন্ন অবস্থানের জন্য নির্দিষ্ট মামলা লিখব? **
আমি কি সাধারণভাবে কনফিডের অস্বাভাবিক অংশ এবং @ নাম_লোকেশনের সাধারণ জায়গা সহ বেশ কয়েকটি অবস্থান যুক্ত করতে পারি?
location /1/ {
some cache expire settings;
NOTHING ELSE;
}
location /2/ {
some other cache expire settings;
NOTHING ELSE;
}
location / {
common settings
try_files
}
location @named_location {
other common settings for this named location only
proxy_pass
}
আমার যখন একই সংস্থানটিতে বিভিন্ন ইউআরএল নির্দেশ করে তখন আমি কী আবার একটি নতুন করে লিখতে পারি?
location /1/ {
rewrite ^ /3/ last;
}
location /2/ {
rewrite ^ /4/ last;
}
location / {
common settings
try_files
}
location @named_location {
other common settings for this named location only
proxy_pass
}
বা সেগুলি কি সমস্তকে এক জায়গায় ভাগ করা উচিত?
location / {
rewrite ^/1/$ /3/ last;
rewrite ^/2/$ /4/ last;
common settings
try_files
}
location @named_location {
other common settings for this named location only
proxy_pass
}
সম্পর্কিত
আমি মেলিং তালিকায় খুব বেশি খুঁজে পাইনি, উইকিতেও এর চেয়ে কম।
দয়া করে মনে রাখবেন এটি এনজিঙ্ক্স সেরা অভ্যাস হিসাবে প্রশ্নটির মতো / না / একই - এটি একটি খুব সাধারণ প্রশ্ন।
এই অন্যটি আরও প্রাসঙ্গিক: আমি কীভাবে এই এনজিএনএক্স কনফিগারেশনটি শুকিয়ে যাব?
map
- বা কমপক্ষে আমি কখনই লক্ষ্য করিনি এবং ভেবেছিলাম যে আমি এটি এর মতো ব্যবহার করতে পারি ... আমাকে এই সম্পর্কে আরও কিছুটা চিন্তা করতে দিন এবং দেখুন আমার আরও প্রশ্ন / মন্তব্য আছে কিনা!