আমি বর্তমানে একটি সংগ্রহস্থল থেকে 3 টি অ্যাপ্লিকেশন 3 ভাগে বিভক্ত করার চেষ্টা করছি, তবে ইউআরএল কাঠামো রেখে, তাই মূলত একই ডোমেনের অধীনে বিভিন্ন অবস্থানগুলি বিভিন্ন অ্যাপ্লিকেশন দ্বারা সরবরাহ করতে হয় be
আমি যেটির সাথে লড়াই করছি তা হ'ল অ্যাপগুলির মধ্যে একটিতে অস্তিত্বহীন ইউআরএলগুলির ফ্যালব্যাক হওয়া দরকার, তাই যদি প্রথমটির সাথে মেলে না এবং দ্বিতীয়টি না মিলায় তবে তৃতীয়টি অনুরোধটি পরিচালনা করতে হবে
আমি যে কাঠামো পেয়েছি তা হ'ল:
/ ইত্যাদি / এনগিনেক্স / সাইটগুলি সক্ষম / মূল_সাইট, এখানে, সার্ভার_নাম এবং লগগুলি ছাড়াও আমি পেয়েছি include /etc/nginx/subsites-enabled/*
, যেখানে আমি প্রতিটি অ্যাপ্লিকেশনের জন্য একটি করে কনফিগারেশন ফাইল পেয়েছি।
3 টি কনফিগার ফাইলের প্রত্যেকটিতে একটি অবস্থানের ব্লক থাকে।
আমি রেজেজেগে নেতিবাচক চেহারা দেখার চেষ্টা করেছি (মূলত অন্যান্য অ্যাপ্লিকেশনগুলি হ্যান্ডল করে থাকা ইউআরএলগুলিকে হার্ডকোড দেওয়ার চেষ্টা করে) তবে ব্যর্থ হয়েছিল।
সুতরাং, সংক্ষেপে বলা:
/ এবং / সম্প্রদায়টি /etc/nginx/subsites-enabled/example.org/home (কয়েকটি পার্ল স্ক্রিপ্ট) দ্বারা সরবরাহ করা উচিত
/ নিউজগুলি /etc/nginx/subsites-enabled/example.org/news দ্বারা সরবরাহ করা উচিত (ওয়ার্ডপ্রেস)
অন্যান্য সমস্ত কিছু /etc/nginx/subsites-enabled/example.org/app (কেক অ্যাপ) দ্বারা সরবরাহ করা উচিত
পার্ল বিট ঠিক কাজ করে। আমার যে সমস্যাটি হচ্ছে তা হ'ল অ্যাপটি সংবাদ গ্রহণ করছে (সম্ভবত এটি এর সাথে মেলে * *), আমি বিভিন্ন অপশন চেষ্টা করেছি (আমি এটি 2 দিনের জন্য এসেছি) তবে তাদের কোনওটিই সমস্যার সমাধান করেনি (কখনও কখনও) স্থিতিশীল সম্পদগুলি কাজ করবে না, ইত্যাদি)।
আমার কনফিগারেশনটি হ'ল:
/etc/nginx/sites-enabled/example.org:
server {
listen 80;
server_name example.org;
error_log /var/log/nginx/example.org.log;
include /etc/nginx/subsites-enabled/example.org/*;
}
/etc/nginx/subsites-enabled/example.org/home:
location = / {
rewrite ^.*$ /index.pl last;
}
location ~* /community(.*) {
rewrite ^.*$ /index.pl last;
}
location ~ \.pl {
root /var/www/vhosts/home;
access_log /var/log/nginx/home/access.log;
error_log /var/log/nginx/home/error.log;
include /etc/nginx/fastcgi_params;
fastcgi_index index.pl;
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/home$fastcgi_script_name;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
জন্য / etc / ngins / subsites-সক্রিয় / খবর
location /news {
access_log /var/log/nginx/news/access.log;
error_log /var/log/nginx/news/error.log debug;
error_page 404 = /news/index.php;
root /var/www/vhosts/news;
index index.php;
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
location ~ \.php {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/news$fastcgi_script_name;
}
}
জন্য / etc / nginx / subsites-সক্রিয় / অ্যাপ:
location ~ .* {
access_log /var/log/nginx/app/access.log;
error_log /var/log/nginx/app/error.log;
rewrite_log on;
index index.php;
root /var/www/vhosts/app/app/webroot;
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
location ~ \.php {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/vhosts/app/app/webroot$fastcgi_script_name;
}
}
location ^~ /news
। খ) আপনার অ্যাপ্লিকেশন ব্লকের জন্য, আপনি এটি করতে সক্ষম হবেন location /
(এটি এর মতো নয় location = /
, তবে ইতিমধ্যে মেলে না এমন সমস্ত কিছুর সাথে মিলিত হওয়া উচিত সঠিক ক্রমে ব্লকগুলি সহ একটি একক ফাইলগুলিতে ফাইলগুলি। এছাড়াও, এর পরিবর্তে try_files ব্যবহার করুন !-e
। অবশেষে wiki.nginx.org/HttpCoreModule#location দেখুন ।
@
করুন। আপনি একটি ত্রুটি_পৃষ্ঠা সেটআপও করতে পারেন যা কোনও নাম্বারিত স্থানে 404 মানচিত্র করে।