এনজিআইএনএক্সের সাথে নাম-ভিত্তিক এবং আইপি-ভিত্তিক ভার্চুয়াল হোস্ট (সার্ভার ব্লক) কীভাবে সেটআপ করবেন


অপেক্ষাকৃত স্বল্প সময়ের মধ্যে এটি বিকশিত হওয়ার পরে এবং উপলব্ধ হয়ে উঠেছে (10 বছরেরও বেশি), উচ্চতর পারফরম্যান্স এবং কম স্মৃতি ব্যবহারের কারণে এনগিনেক্স ওয়েব সার্ভারের মধ্যে একটি টেকসই এবং অবিচলিত বিকাশ লাভ করেছে।

যেহেতু এনগিনেক্স ফ্রি এবং ওপেন সোর্স সফ্টওয়্যার, তাই এটি বিশ্বজুড়ে হাজার হাজার ওয়েব সার্ভার প্রশাসকরা কেবল লিনাক্স এবং * নিক্স সার্ভারগুলিতেই নয়, মাইক্রোসফ্ট উইন্ডোতেও গ্রহণ করেছেন।

আমরা যারা আপাচে সবচেয়ে বেশি ব্যবহৃত হয়েছি তাদের জন্য, এনগিনেক্সের কিছুটা খাড়া শেখার বক্ররেখা থাকতে পারে (কমপক্ষে এটি আমার ক্ষেত্রে ছিল) তবে আপনি কয়েকটি সাইট সেট আপ করার পরে এবং ট্রাফিক এবং সংস্থান ব্যবহারের পরিসংখ্যান দেখতে শুরু করার পরে অবশ্যই তা পরিশোধ হয়ে যায়।

এই নিবন্ধে আমরা কীভাবে নামস-ভিত্তিক এবং আইপি-ভিত্তিক ভার্চুয়াল হোস্টিং সেটোস/আরএইচএল 7 সার্ভার এবং ডেবিয়ান 8 এবং ডেরিভেটিভস সেট করতে উবুন্টু 15.04 এবং এর স্পিন-অফগুলি দিয়ে শুরু করব তা ব্যাখ্যা করব।

  1. অপারেটিং সিস্টেম: ডেবিয়ান 8 জেসি সার্ভার [আইপি 192.168.0.25]
  2. গেটওয়ে: রাউটার [আইপি 192.168.0.1]
  3. ওয়েব সার্ভার: এনগিনেক্স 1.6.2-5
  4. ডামি ডোমেনস: www.tecmintlovesnginx.com এবং www.nginxmeanspower.com

এনগিনেক্স ওয়েব সার্ভার ইনস্টল করা হচ্ছে

আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে দয়া করে আরও এগিয়ে যাওয়ার আগে Nginx ইনস্টল করুন। শুরু করতে যদি আপনার সহায়তা প্রয়োজন হয় তবে এই সাইটে এনজিনেক্সের জন্য একটি দ্রুত অনুসন্ধান এই বিষয়টিতে বেশ কয়েকটি নিবন্ধ ফেরত দেবে। এই পৃষ্ঠার শীর্ষে ম্যাগনিফাইং গ্লাস আইকনে ক্লিক করুন এবং কীওয়ার্ড এনজিনেক্সের জন্য অনুসন্ধান করুন। আপনি যদি এই সাইটে নিবন্ধগুলি কীভাবে অনুসন্ধান করবেন তা জানেন না, তবে চিন্তা করবেন না যে আমরা এখানে এনজিএনএক্স নিবন্ধগুলিতে লিঙ্ক যুক্ত করেছি, কেবল আপনার নিজের লিনাক্স বিতরণ অনুসারে এটি ইনস্টল করুন।

  1. RHEL/CentOS 7
  2. সূত্র থেকে এনগিনেক্স ইনস্টল করুন এবং সংকলন করুন Comp
  3. দেবিয়ান 8 এ Nginx ওয়েব সার্ভার ইনস্টল করুন
  4. ফেডোরা 23 তে মারিয়াডিবি এবং পিএইচপি/পিএইচপি-এফপিএম সহ এনগিনেক্স ইনস্টল করুন
  5. উবুন্টু 15.10 সার্ভার/ডেস্কটপ
  6. এ এনগিনেক্স ওয়েব সার্ভার ইনস্টল করুন
  7. পাসওয়ার্ড এনগিনেক্স ওয়েবসাইট ডিরেক্টরিগুলি সুরক্ষা করুন

তারপরে এই টিউটোরিয়ালটির বাকী অংশটি চালিয়ে যাওয়ার জন্য প্রস্তুত হন।

এনগিনেক্সে নাম ভিত্তিক ভার্চুয়াল হোস্ট তৈরি করা

যেহেতু আমি নিশ্চিত যে আপনি ইতিমধ্যে জানেন, একটি ভার্চুয়াল হোস্ট এমন একটি ওয়েবসাইট যা কোনও এক ক্লাউড ভিপিএস বা শারীরিক সার্ভারে এনগিনেক্স দ্বারা পরিবেশন করা হয়। যাইহোক, এনগিনেক্স ডক্সে আপনি "সার্ভার ব্লক" শব্দের পরিবর্তে খুঁজে পাবেন তবে তারা মূলত একই নাম যা বিভিন্ন নামে ডাকা হয়।

ভার্চুয়াল হোস্টগুলি সেট আপ করার প্রথম পদক্ষেপটি মূল কনফিগারেশন ফাইলের (/etc/nginx/nginx.conf) বা ভিতরে/ইত্যাদিতে এক বা একাধিক সার্ভার ব্লক তৈরি করা (আমাদের ক্ষেত্রে আমরা দুটি ডামি ডোমেনের জন্য একটি তৈরি করব) inside/এনগিনেক্স/সাইট-উপলভ্য।

যদিও এই ডিরেক্টরিতে কনফিগারেশন ফাইলগুলির নাম (সাইটগুলি উপলভ্য) আপনি যা চান সেট করতে পারেন তবে ডোমেনগুলির নামটি ব্যবহার করা ভাল ধারণা এবং এটি ছাড়াও আমরা .conf এক্সটেনশান নির্দেশ করুন যে এগুলি কনফিগারেশন ফাইল।

এই সার্ভার ব্লকগুলি তুলনামূলকভাবে জটিল হতে পারে তবে তাদের মূল ফর্মে এগুলি নিম্নলিখিত বিষয়বস্তু নিয়ে গঠিত:

/Etc/nginx/sites- উপলভ্য /tecmintlovesnginx.com.conf এ:

server {  
    listen       80;  
    server_name  tecmintlovesnginx.com www.tecmintlovesnginx.com;
    access_log  /var/www/logs/tecmintlovesnginx.access.log;  
    error_log  /var/www/logs/tecmintlovesnginx.error.log error; 
        root   /var/www/tecmintlovesnginx.com/public_html;  
        index  index.html index.htm;  
}

/Etc/nginx/sites- উপলব্ধ /nginxmeanspower.com.conf এ:

server {  
    listen       80;  
    server_name  nginxmeanspower.com www.nginxmeanspower.com;
    access_log  /var/www/logs/nginxmeanspower.access.log;  
    error_log  /var/www/logs/nginxmeanspower.error.log error;
    root   /var/www/nginxmeanspower.com/public_html;  
    index  index.html index.htm;  
}

আপনার ভার্চুয়াল হোস্টগুলি সেট আপ করতে আপনি উপরের ব্লকগুলি ব্যবহার করতে পারেন, বা আপনি/etc/nginx/সাইটগুলি উপলব্ধ/ডিফল্ট (দেবিয়ান) বা /etc/nginx/nginx.conf.default (/etc/nginx/nginx.conf.default ( সেন্টস)।

একবার অনুলিপি করা হলে তাদের অনুমতি এবং মালিকানা পরিবর্তন করুন:

# chmod 660  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
# chmod 660  /etc/nginx/sites-available/nginxmeanspower.com.conf
# chgrp www-data  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
# chgrp www-data  /etc/nginx/sites-available/nginxmeanspower.com.conf
# chgrp nginx  /etc/nginx/sites-available/tecmintlovesnginx.com.conf
# chgrp nginx  /etc/nginx/sites-available/nginxmeanspower.com.conf

আপনার কাজ শেষ হয়ে গেলে, বিভ্রান্তি বা দ্বন্দ্ব এড়াতে আপনার নমুনা ফাইলটি মুছে ফেলা বা অন্য কোনও নামকরণ করা উচিত।

দয়া করে নোট করুন যে আপনি লগগুলির জন্য <ডিরেক্টরি তৈরি করতে হবে (/var/www/লগস ) এবং আপনি সেন্টোস বা ডেবিয়ান চালাচ্ছেন কিনা তার উপর নির্ভর করে এনগিনেক্স ব্যবহারকারীকে (এনগিনেক্স বা www-ডেটা) প্রদান করতে হবে ) এটি পড়ুন এবং এতে অনুমতি লিখুন:

# mkdir /var/www/logs
# chmod -R 660 /var/www/logs
# chgrp <nginx user> /var/www/logs

সাইটগুলি সক্ষম ডিরেক্টরিতে এই ফাইলে একটি সিমলিংক তৈরি করে ভার্চুয়াল হোস্টগুলি এখন সক্ষম করতে হবে:

# ln -s /etc/nginx/sites-available/tecmintlovesnginx.com.conf /etc/nginx/sites-enabled/tecmintlovesnginx.com.conf
# ln -s /etc/nginx/sites-available/nginxmeanspower.com.conf /etc/nginx/sites-enabled/nginxmeanspower.com.conf

এরপরে, প্রতিটি ভার্চুয়াল হোস্টের জন্য /index/html নামের একটি নমুনা এইচটিএমএল ফাইল তৈরি করুন (<ডোমেন নাম> প্রতিস্থাপন করুন) প্রয়োজন)। নিম্নলিখিত কোডটি প্রয়োজনীয় হিসাবে সংশোধন করুন:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Tecmint loves Nginx</title>
  </head>
  <body>
  <h1>Tecmint loves Nginx!</h1>
  </body>
</html>

শেষ পর্যন্ত, এনগিনেক্স কনফিগারেশন পরীক্ষা করুন এবং ওয়েব সার্ভারটি শুরু করুন। কনফিগারেশনে কোনও ত্রুটি থাকলে, আপনাকে সেগুলি সংশোধন করার অনুরোধ জানানো হবে:

# nginx -t && systemctl start nginx

এবং আপনার স্থানীয় মেশিনে আপনার /ইত্যাদি/হোস্ট ফাইলটিতে নীচের এন্ট্রিগুলিকে একটি বেসিক নাম রেজোলিউশন কৌশল হিসাবে যুক্ত করুন:

192.168.0.25 tecmintlovesnginx.com
192.168.0.25 nginxmeanspower.com

তারপরে একটি ওয়েব ব্রাউজার চালু করুন এবং উপরে তালিকাভুক্ত URL গুলিতে যান:

এনগিনেক্সে আরও ভার্চুয়াল হোস্ট যুক্ত করতে কেবল উপরে উল্লিখিত পদক্ষেপগুলি যতবার প্রয়োজন ততবার পুনরাবৃত্তি করুন।

আইপি-ভিত্তিক ভার্চুয়াল হোস্টগুলি এনগিনেক্সে

নাম ভিত্তিক ভার্চুয়াল হোস্টগুলির বিপরীতে যেখানে সমস্ত হোস্ট একই আইপি ঠিকানার মাধ্যমে অ্যাক্সেসযোগ্য হয়, আইপি-ভিত্তিক ভার্চুয়াল হোস্টগুলির জন্য প্রতিটি পৃথক আইপি: পোর্ট সমন্বয় প্রয়োজন require

এটি ওয়েব সার্ভারকে আইপি ঠিকানা এবং পোর্টের উপর নির্ভর করে যেখানে অনুরোধটি পেয়েছে তার উপর নির্ভর করে বিভিন্ন সাইটগুলি ফিরে আসতে দেয়। যেহেতু নামভিত্তিক ভার্চুয়াল হোস্টগুলি আমাদের আইপি ঠিকানা এবং পোর্ট ভাগ করে নেওয়ার সুবিধা দেয়, সেগুলি সাধারণ-উদ্দেশ্যে ওয়েব সার্ভারগুলির জন্য আদর্শ এবং এটি আপনার নির্বাচিত সেটআপ হওয়া উচিত যদি না আপনার Nginx এর ইনস্টল করা সংস্করণ সার্ভার নেম ইন্ডিকেশন (এসএনআই) সমর্থন না করে unless হয়, কারণ এটি সত্যই পুরানো সংস্করণ, বা এটি httpwith-http_ssl_module সংকলন বিকল্প ছাড়া সংকলিত হয়েছিল was

যদি,

# nginx -V

নীচে হাইলাইট করা বিকল্পগুলি দেয় না:

আপনার আসল ইনস্টলেশন পদ্ধতির উপর নির্ভর করে আপনার Nginx এর সংস্করণ আপডেট করতে হবে বা এটি পুনরায় সংকলন করতে হবে। এনগিনেক্স সংকলনের জন্য নীচের নিবন্ধটি অনুসরণ করুন:

  1. RHEL/CentOS 7
  2. সূত্র থেকে এনগিনেক্স ইনস্টল করুন এবং সংকলন করুন Comp

আমরা যেতে ভাল বলে ধরে নিলাম, আমাদের লক্ষ করতে হবে যে আইপি-ভিত্তিক ভার্চুয়াল হোস্টগুলির জন্য আরেকটি পূর্বশর্ত হ'ল পৃথক আইপিগুলির প্রাপ্যতা - হয় তাদের আলাদা আলাদা নেটওয়ার্ক ইন্টারফেসগুলিতে বরাদ্দ করে, বা ভার্চুয়াল আইপি ব্যবহারের মাধ্যমে (আইপি এলিয়াসিং নামে পরিচিত) )।

দেবিয়ান-এ আইপি এলিয়াসিং করতে (ধরে নিচ্ছেন আপনি এথ0 ব্যবহার করছেন), /ইত্যাদি/নেটওয়ার্ক/ইন্টারফেসগুলি নীচে সম্পাদনা করুন:

auto eth0:1
iface eth0:1 inet static
        address 192.168.0.25
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
auto eth0:2
iface eth0:2 inet static
        address 192.168.0.26
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

উপরের উদাহরণে আমরা এথ0: এথ0: 1 (192.168.0.25) এবং এথ0: 2 (192.168.0.26) এর মধ্যে দুটি ভার্চুয়াল এনআইসি তৈরি করি।

CentOS এ,/etc/sysconfig/নেটওয়ার্ক-স্ক্রিপ্টগুলি/ifcfg-enp0s3 কে ifcfg-enp0s3: 1 হিসাবে নামকরণ করুন এবং ifcfg-enp0s3: 2 হিসাবে একটি অনুলিপি তৈরি করুন এবং তারপরে কেবল নিম্নলিখিত লাইনগুলি যথাক্রমে পরিবর্তন করুন:

DEVICE="enp0s3:1"
IPADDR=192.168.0.25

এবং

DEVICE="enp0s3:2"
IPADDR=192.168.0.26

একবার হয়ে গেলে, নেটওয়ার্ক পরিষেবাটি পুনরায় চালু করুন:

# systemctl restart networking

এর পরে, এই নিবন্ধে পূর্বে সংজ্ঞায়িত সার্ভার ব্লকে নিম্নলিখিত পরিবর্তনগুলি করুন:

/Etc/nginx/sites- উপলভ্য /tecmintlovesnginx.com.conf এ:

listen 192.168.0.25:80

/Etc/nginx/sites- উপলব্ধ /nginxmeanspower.com.conf এ:

listen 192.168.0.26:80

পরিশেষে, পরিবর্তনগুলি কার্যকর করতে Nginx পুনরায় চালু করুন।

# systemctl restart nginx

এবং সেই অনুযায়ী আপনার স্থানীয় /ইত্যাদি/হোস্ট আপডেট করতে ভুলবেন না:

192.168.0.25 tecmintlovesnginx.com
192.168.0.26 nginxmeanspower.com

সুতরাং, ৮০.১১.০.0.০.২৫ এবং 192.168.0.26 80 বন্দরটিতে করা প্রতিটি অনুরোধ যথাক্রমে tecmintlovesnginx.com এবং nginxmeanspower.com প্রদান করবে:

আপনি উপরের চিত্রগুলিতে দেখতে পাচ্ছেন, আপনার এখন দুটি আইপি-ভিত্তিক ভার্চুয়াল হোস্ট আপনার সার্ভারে দুটি পৃথক আইপি এলিয়াস সহ একমাত্র এনআইসি ব্যবহার করছে।

সংক্ষিপ্তসার

এই টিউটোরিয়ালে আমরা ব্যাখ্যা করেছি যে কীভাবে Nginx এ নাম ভিত্তিক এবং আইপি ভিত্তিক ভার্চুয়াল হোস্ট উভয় সেট আপ করতে হয়। যদিও আপনি সম্ভবত প্রথম বিকল্পটি ব্যবহার করতে চাইবেন, তবে এটি জেনে রাখা গুরুত্বপূর্ণ যে অন্য বিকল্পটি আপনার প্রয়োজনের পরেও রয়েছে - কেবলমাত্র এই গাইডে বর্ণিত বিষয়গুলি বিবেচনা করার পরে আপনি এই সিদ্ধান্ত নিয়েছেন তা নিশ্চিত করুন।

অতিরিক্তভাবে, আপনি Nginx ডক্স বুকমার্ক করতে পারেন কারণ এটি সার্ভার ব্লকগুলি তৈরি করার সময় প্রায়শই তাদের উল্লেখ করা ভাল এবং ভাল হয় (সেখানে আপনার এটি রয়েছে - আমরা এখন এনগিনেক্স ভাষায় কথা বলছি) এবং সেগুলি কনফিগার করতে পারি। এই অসামান্য ওয়েব সার্ভারটি কনফিগার এবং টিউন করার জন্য উপলভ্য সমস্ত বিকল্পগুলির আপনি বিশ্বাস করবেন না।

সর্বদা হিসাবে, এই নিবন্ধটি সম্পর্কে আপনার যদি কোনও প্রশ্ন বা মন্তব্য থাকে তবে নীচের ফর্মটি ব্যবহার করে আমাদের একটি লাইন ফেলে দিতে দ্বিধা করবেন না। আমরা আপনার কাছ থেকে শোনার জন্য উন্মুখ, এবং এই গাইড সম্পর্কে আপনার প্রতিক্রিয়া সর্বাধিক স্বাগত।