Ubuntu 20.04 سسٹم پر Nginx ویب سرور انسٹال اور سیٹ اپ کرنے کے لیے مکمل مرحلہ وار گائیڈ
Nginx ایک اوپن سورس اور مقبول ریورس پراکسی ویب سرور ہے جو متعدد پلیٹ فارمز پر دستیاب ہے۔ سافٹ ویئر کی طرف سے تیار کیا گیا تھا ایگور سیسویف C10K مسئلہ کے حل کے طور پر اور پہلی بار 2004 میں ریلیز ہوا۔ C10K مسئلہ دس ہزار کلائنٹس کو بیک وقت سنبھالنے کا مسئلہ ہے جو 2000 کی دہائی کے اوائل میں کافی آسان نہیں تھا۔
اس ٹیوٹوریل میں، ہم دیکھتے ہیں کہ Ubuntu 20.04 LTS پر Nginx کو انسٹال اور سیٹ اپ کرنے کا طریقہ۔
شرطیں
Ubuntu 20.04 کے ساتھ ایک سسٹم انسٹال ہوا ہے اور a sudo
صارف مزید برآں، آپ کے پاس کوئی دوسرا ویب سرور نہیں ہونا چاہیے جیسے کہ اپاچی پورٹ 80 یا 443 پر چل رہا ہو۔
Nginx انسٹال کرنا
Nginx Ubuntu 20.04 ریپوزٹری میں دستیاب ہے۔ مناسب
پیکیج مینیجر اسے انسٹال کرنے کے لیے استعمال کیا جا سکتا ہے۔ لہذا، Nginx انسٹال کرنے کے لئے ٹرمینل کو استعمال کرتے ہوئے کھولیں ctrl+alt+t
اور چلائیں:
sudo apt اپ ڈیٹ اور اور sudo apt nginx انسٹال کریں۔
تنصیب جلد مکمل ہو جائے گی اور Nginx ڈیمون پس منظر میں خود بخود شروع ہو جائے گا۔ لہذا، Nginx کی حیثیت کو چیک کرنے کے لئے، چلائیں:
sudo systemctl اسٹیٹس nginx
مندرجہ بالا کمانڈ کو چلانے کے بعد آپ کو Nginx کی حیثیت ملنی چاہئے۔ فعال (چل رہا ہے)
سبز میں جیسا کہ ذیل میں دیکھا گیا ہے۔
اوبنٹو فائر وال (UFW) کی تشکیل
پہلے سے طے شدہ طور پر، باہر جانے والی بندرگاہیں HTTP (80) اور HTTPS (443) Ubuntu 20.04 پر بند ہیں۔ مزید برآں، ڈیفالٹ فائر وال ڈیمون ufw
تمام بندرگاہیں بند ہونے کی وجہ سے غیر فعال ہے۔
اس طرح، دوسرے سسٹمز سے Nginx سرور تک رسائی حاصل کرنے کے لیے، آپ کو اسے فعال کرنے کی ضرورت ہوگی۔ ufw
اور پورٹ پر ٹریفک کی اجازت دینے کے لیے اسے صحیح طریقے سے ترتیب دیں۔ 80
اور 443
. اس سے پہلے کہ آپ فعال کریں۔ ufw
، جان لیں کہ اگر آپ ریموٹ سرور پر Nginx ترتیب دے رہے ہیں تو پہلے اپ ڈیٹ کریں۔ ufw
اجازت دینے کے قوانین ssh
چلانے سے:
sudo ufw ssh کی اجازت دیتا ہے۔
مندرجہ بالا کمانڈ کی اجازت دیتا ہے ssh
بغیر اجازت کے ریموٹ سرور تک رسائی ssh
آپ کو ریموٹ سرور سے لاک آؤٹ کر دیا جائے گا۔
چالو کرنے کے بعد ssh
رسائی، آپ کو فعال کر سکتے ہیں ufw
فائر وال ڈیمون چلا کر:
sudo ufw کو فعال کریں۔
اب، آپ کو HTTP اور HTTPS بندرگاہوں کی اجازت دینے کے لیے فائر وال کے قوانین کو تبدیل کرنے کی ضرورت ہے تاکہ Nginx ویب ٹریفک کی خدمت کر سکے۔ قوانین کو تبدیل کرنے کے لیے، چلائیں:
sudo ufw 'Nginx Full' کی اجازت دیتا ہے
Nginx مکمل
تمام IP پتوں سے آنے والی اور جانے والی ٹریفک کے لیے HTTP اور HTTPS دونوں بندرگاہوں کی اجازت دیتا ہے۔
اس کے بعد، اس بات کی توثیق کریں کہ آیا قواعد صحیح طریقے سے شامل کیے گئے ہیں۔ ufw
کمانڈ چلا کر فائر وال:
sudo ufw کی حیثیت
مذکورہ کمانڈ ان اصولوں کو آؤٹ پٹ کرے گی جن میں ہم نے شامل کیا ہے۔ ufw
فائر وال ڈیمون.
Nginx سرور سے منسلک ہو رہا ہے۔
اب جب کہ ہم نے Nginx انسٹال کر کے کنفیگر کر لیا ہے۔ ufw
آنے والی HTTP اور HTTPS ویب ٹریفک کی اجازت دینے کے لیے، آپ کو سرور کا IP ایڈریس استعمال کرکے Nginx سرور تک رسائی حاصل کرنے کے قابل ہونا چاہیے۔
اگر آپ سرور کا IP پتہ نہیں جانتے ہیں تو اسے آسانی سے بازیافت کرنے کے لیے نیچے دی گئی کمانڈ کا استعمال کریں۔
ip addr شو eth0 | grep inet | awk '{ پرنٹ $2؛ }' | sed 's/\/.*$//'
ایک بار جب آپ کو آئی پی ایڈریس مل جائے تو اسے اپنے براؤزر میں پیسٹ کریں اور انٹر کو دبائیں۔
//your-server-ip
اگر سب کچھ صحیح طریقے سے ترتیب دیا گیا تھا، تو آپ کو 'nginx میں خوش آمدید!' ویب صفحہ دیکھنے کے قابل ہونا چاہیے۔
Nginx فائلیں اور ڈائریکٹریز
اب جب کہ ہمارے پاس Nginx انسٹال ہے اور آپ کے سرور پر چل رہا ہے۔ آئیے ہم کچھ اہم Nginx فائلوں اور ڈائریکٹریوں پر ایک نظر ڈالتے ہیں جو آپ کو اپنی ویب سائٹ/ویب ایپ کو کنفیگر کرنے کے لیے استعمال کرنا ہوں گی۔
ویب سرور کا مواد
آپ کسی بھی مقام کو ترتیب دے سکتے ہیں جسے آپ اپنے سرور بلاک کے لیے اپنی روٹ ڈائرکٹری بنانا چاہتے ہیں۔ Nginx کا ڈیفالٹ HTML براہ راست ہے۔ /var/www/html
، یہ وہ جگہ ہے جہاں 'خوش آمدید' صفحہ جس تک ہم نے پہلے رسائی حاصل کی تھی۔
دیگر مقامات جو عام طور پر ڈومینز کے لیے روٹ ڈائرکٹری کے طور پر استعمال ہوتے ہیں ان میں شامل ہیں:
/گھر//
/var/www/html/
/opt/
Nginx کنفیگریشن فائلیں۔
تمام Nginx کنفیگریشن فائلیں موجود ہیں۔ /etc/nginx
ڈائریکٹری آئیے کچھ اہم فائلوں کو دیکھتے ہیں جن کی ہمیں بنیادی ڈومین سیٹ اپ کرنے کی ضرورت ہے۔
/etc/nginx/nginx.conf
: یہ فائل Nginx چلانے کے لیے درکار تمام کنفیگریشن پر مشتمل ہے۔/etc/nginx/sites-available/
: اس ڈائرکٹری میں ڈومینز کے تمام سرور بلاک کنفیگریشن ہیں، لیکن فی الحال فعال/تعینات نہیں ہیں اور اس طرح کلائنٹس کے لیے قابل رسائی نہیں ہے۔/etc/nginx/sites-enabled/
: اس ڈائرکٹری میں فی الحال فعال/ فعال ڈومینز ہیں جو کلائنٹس کے ذریعے قابل رسائی ہیں۔ ڈومین کو فعال کرنے کے لیے ہمیں ڈومین کنفیگریشن فائل کو لنک کرنے کی ضرورت ہے۔سائٹس دستیاب ہیں۔
کرنے کے لئےسائٹس فعال
ڈائریکٹری/etc/nginx/snippets
/: اس ڈائرکٹری میں، ہم کنفیگریشن کے ممکنہ طور پر دوبارہ قابل استعمال حصوں کو محفوظ کر سکتے ہیں۔ یہ پیداواری ماحول میں کافی وقت بچاتا ہے اس حقیقت کی وجہ سے کہ یہ کنفیگریشن کے سیگمنٹس/بلاک کو دوبارہ قابل استعمال بنا سکتا ہے۔
سرور لاگز
Nginx واقعات / سرگرمیوں کو لاگ ان کرتا ہے اور انہیں لاگ فائلوں میں اسٹور کرتا ہے۔ /var/log/nginx
ڈائریکٹری Nginx ان فائلوں میں سرگرمیوں کو لاگ کرتا ہے:
/var/log/nginx/access.log
: یہ فائل ان کلائنٹس کو لاگ کرتی ہے جنہوں نے Nginx سرور تک رسائی حاصل کی ہے۔ تفصیلات میں کلائنٹ کا IP ایڈریس، وقت اور تاریخ، سرور اور OS تک رسائی کے لیے استعمال ہونے والا براؤزر شامل ہے۔/var/log/nginx/error.log
: یہ فائل چلتے وقت Nginx سرور کی طرف سے پیش آنے والی غلطیوں کو لاگ کرتی ہے۔
لہذا، اس سیکشن میں، ہم نے مختصر طور پر کچھ اہم Nginx فائلوں اور ڈائریکٹریوں کو دیکھا ہے جو شروع کرنے کے لیے کافی ہیں۔
سرور بلاکس کی ترتیب
اب جب کہ ہمارے پاس Nginx فائلوں اور سرور کے بارے میں کچھ بنیادی معلومات ہیں، ہم اپنا سرور بلاک قائم کرنے کے لیے تیار ہیں۔ سرور بلاکس اپاچی ورچوئل ہوسٹس سے ملتے جلتے ہیں۔
ہم دیکھیں گے کہ سرور بلاک کیسے بنایا جائے اور یہ ظاہر کرنے کے لیے کہ ہم استعمال کریں گے۔ example.com
تخلیق کے عمل میں ڈومین کے طور پر۔
💡 تبدیل کریں۔ example.com
آپ کے ڈومین نام کے ساتھ.
اس سے پہلے کہ ہم سرور بلاکس کو ترتیب دینا شروع کریں، ہمیں ویب سائٹ کے مواد کے لیے روٹ ڈائرکٹری کے طور پر کام کرنے کے لیے ایک ڈائریکٹری بنانے کی ضرورت ہے۔ آئیے تخلیق کریں۔ /var/www/example.com/html
ڈومین استعمال کرنے کے لیے ڈائریکٹری mkdir
کمانڈ.
sudo mkdir -p /var/www/example.com/html
دی -p
آپشن تمام پیرنٹ ڈائریکٹریز کو درکار بنائے گا۔ یعنی پیدا کرے گا۔ example.com
کے لیے ایک پیرنٹ ڈائرکٹری html
اگر یہ موجود نہیں ہے.
کے ساتھ ڈائریکٹری کی ملکیت کو تبدیل کریں۔ $USER
ماحولیاتی متغیر:
sudo chown -R $USER:$USER /var/www/example.com/html
اگلا، ایک سادہ بنائیں index.html
فائل جس تک رسائی اس وقت کی جائے گی جب آپ ڈومین کنفیگر کیے جانے پر جائیں گے۔ یہ صرف وضاحتی مقصد کے لیے ہے۔
nano /var/www/example.com/html/index.html
درج ذیل مواد کو اس فائل میں چسپاں کریں جو ہم نے ابھی سرور پر بنائی ہے۔
example.com میں خوش آمدید! یو! example.com قابل رسائی ہے!
دبائیں ctrl+o
لکھنے اور محفوظ کرنے کے لیے index.html
فائل اور پھر دبائیں ctrl+x
اخراج کے لئے نینو
ایڈیٹر
اب آخر کار ہم سرور بلاک بنانے کی طرف بڑھ سکتے ہیں، تاکہ Nginx کی خدمت کر سکے۔ index.html
جب کوئی صارف جاتا ہے۔ example.com
. لہذا سرور بلاک بنانے کے لیے ہمیں کنفیگریشن فائل بنانے کی ضرورت ہے۔ example.com
میں سائٹس دستیاب ہیں۔
ڈائریکٹری ایسا کرنے کے لیے، ہم نینو اور رن کا استعمال کرتے ہیں:
sudo nano /etc/nginx/sites-available/example.com
اور پھر، درج ذیل کنفیگریشن کو ٹائپ کریں یا کاپی/پیسٹ کریں۔ پھر دبائیں ctrl+o
اور لکھنے اور محفوظ کرنے کے لیے درج کریں۔ اسی طرح، دبائیں ctrl+x
نینو ایڈیٹر کو بند کرنے کے لیے۔
سرور { سنیں 80؛ سنیں [::]:80؛ server_name example.com www.example.com؛ root /var/www/example-domain.com/html؛ index index.html; مقام / { try_files $uri $uri/ =404؛ } }
مندرجہ بالا کنفیگریشن ڈیفالٹ سرور بلاک کنفیگریشن کی طرح ہے، ہم نے تبدیل کر دیا ہے۔ جڑ
ہماری نئی روٹ ڈائرکٹری کی طرف اشارہ کرنے کے لیے بیان اور تبدیل کر دیا۔ خدمت گار کا نام
ہمارے ڈومین نام پر۔ جبکہ مقام{}
اسٹیٹمنٹ ایرر کیچ اسٹیٹمنٹ کے طور پر کام کرتا ہے اگر فائلیں نہیں ملتی ہیں اور کلائنٹ کو ایرر 404 دکھاتا ہے۔
اگلا، ہم اپنے سرور بلاک کو فعال کر سکتے ہیں تاکہ Nginx کام کرے۔ example.com
ویب صفحات. اپنے سرور بلاک کو فعال کرنے کے لیے ہمیں اس کا ایک سملنک بنانا ہوگا۔ example.com
سے فائل سائٹس دستیاب ہیں۔
کو سائٹس فعال
ڈائریکٹری ایسا کرنے کے لیے، چلائیں:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
میں ایک لنک بنایا جائے گا۔ سائٹ فعال
ڈائریکٹری اور اب example.com
فعال ہونا چاہئے. اب ہمارے پاس اپنے Nginx سرور پر دو سرور بلاکس فعال ہیں جو کہ اس کی بنیاد پر درخواست کا جواب دیں گے۔ سنو
اور seever_name
میں محفوظ کردہ ہدایات example.com
سرور بلاک کنفیگریشن۔
یہ چیک کرنے کے لیے کہ آیا تمام کنفیگریشن فائلیں درست ہیں اور کوئی نحوی غلطی موجود نہیں ہے، چلائیں:
sudo nginx -t
اب، آخر میں درج ذیل کمانڈ کو چلا کر تبدیلیاں لاگو کرنے کے لیے Nginx کو دوبارہ شروع کریں:
sudo systemctl nginx کو دوبارہ شروع کریں۔
Nginx اب آپ کے سرور بلاک کی خدمت شروع کر دے گا، آپ جا سکتے ہیں۔ //آپ کا ڈومین نام
اور اپنے ویب پیج کو لائیو دیکھیں۔
نوٹ: مندرجہ بالا سیکشن کے کام کرنے کے لیے آپ کو اپنا ڈومین سیٹ اپ کرنا اور تبدیل کرنا ہوگا۔ example.com
آپ کے اپنے ڈومین نام کے ساتھ۔ اس کے علاوہ، آپ کو اپنے Nginx سرور کے IP ایڈریس کی طرف اشارہ کرنے کے لیے اپنے ڈومین کے لیے DNS کو ترتیب دینا ہوگا۔
نتیجہ اخذ کرنے کے لیے، ہم نے Nginx کو انسٹال کرنے، ترتیب دینے کا طریقہ دیکھا ہے۔ ufw
Nginx سرور تک ریموٹ رسائی کی اجازت دینے کے لیے، Nginx سے دور سے جڑا ہوا، کچھ بنیادی Nginx فائلوں اور ڈائریکٹریوں سے واقف ہوا اور سرور بلاک کو ترتیب دینے کا طریقہ سیکھا۔
Nginx کے بارے میں مزید جاننے اور جاننے کے لیے، آپ Nginx ویکی کو دیکھنا چاہیں گے۔