دسته‌ها
Ubuntu آموزش دانشنامه سرور مجازی لینوکس

آموزش نصب Nginx در اوبونتو

در این مقاله به آموزش نصب Nginx در اوبونتو ۲۰٫۰۴ میپردازیم که میتوانید مقالات قبلی آموزش نصب گرافنا در اوبونتو و آمنوزش نصب جاوا در اوبونتو ۲۰ را نیز مشاهده کنید.

مقدمه

Nginx یکی از محبوب ترین سرورهای وب در جهان است و مسئولیت میزبانی برخی از بزرگترین و بالاترین سایتهای پربازدید را در اینترنت دارد. این یک انتخاب سبک وزن است که می تواند به عنوان سرور وب یا پروکسی معکوس استفاده شود.

در این راهنما ، ما در مورد چگونگی نصب Nginx در سرور Ubuntu 20.04 خود ، تنظیم فایروال ، مدیریت فرایند Nginx و ایجاد بلوک های سرور برای میزبانی بیش از یک دامنه از یک سرور واحد بحث خواهیم کرد.


پیش نیازها

قبل از شروع این راهنما ، باید یک کاربر معمولی و غیر ریشه با امتیازات sudo در سرور خود تنظیم کنید. هنگامی که یک حساب کاربری در دسترس دارید ، به عنوان کاربر غیر ریشه خود وارد شوید.

 

نصب  Nginx ( مرحله اول)

از آنجا که Nginx در مخازن پیش فرض اوبونتو موجود است ، می توان آن را از طریق این مخازن با استفاده از سیستم بسته بندی مناسب نصب کرد.

از آنجا که این اولین تعامل ما با سیستم بسته بندی مناسب در این جلسه است ، ما فهرست بسته های محلی خود را به روز می کنیم تا به جدیدترین لیست های بسته دسترسی داشته باشیم. پس از آن ، می توانیم nginx را نصب کنیم:

[inter_codes color=”#4A148C”] sudo apt update
sudo apt install nginx
[/inter_codes]

بعد از پذیرش مرحله اول ، apt Nginx و هرگونه وابستگی لازم به سرور شما را نصب می کند.

 

تنظیم فایروال

(مرحله دوم)

قبل از آزمایش Nginx ، برای دسترسی به سرویس باید نرم افزار فایروال تنظیم شود. Nginx پس از نصب ، خود را به عنوان سرویس با ufw ثبت می کند ، و این باعث می شود دسترسی آسان Nginx ساده باشد.

تنظیمات برنامه را که ufw می داند چگونه با آن کار کند تایپ کنید:

[inter_codes color=”#4A148C”]sudo ufw app list[/inter_codes]

بعد از وارد کردن دستور بالا خروجی زیر را باید دریافت کنید:

[inter_codes color=”#4A148C”]خروجی
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH[/inter_codes]

همانطور که از خروجی نشان داده شده است ، سه پروفایل برای Nginx در دسترس است:

  • Nginx Full: این پروفایل هر دو درگاه ۸۰ (ترافیک وب عادی و بدون رمزگذاری) و پورت ۴۴۳ (ترافیک رمزگذاری شده TLS / SSL) را باز می کند
  • Nginx HTTP: این نمایه فقط پورت ۸۰ را باز می کند (ترافیک وب عادی و بدون رمزگذاری)
  • Nginx HTTPS: این نمایه فقط درگاه ۴۴۳ را باز می کند (ترافیک رمزگذاری شده TLS / SSL)

توصیه می شود محدودترین نمایه ای را که هنوز امکان ترافیک تنظیم شده خود را فراهم می کند ، فعال کنید. در حال حاضر ، ما فقط نیاز به اجازه ترافیک در بندر ۸۰ داریم.

می توانید این کار را باوارد کردن دستور زیر فعال کنید:

[inter_codes color=”#4A148C”]sudo ufw allow ‘Nginx HTTP'[/inter_codes]

برای اطمینان از فعال شدن دستور بالا دستور زیر را وارد میکنیم و نتیجه آن را مشاهده میکنیم:

[inter_codes color=”#4A148C”]sudo ufw status[/inter_codes]

خروجی نشان خواهد داد که ترافیک HTTP مجاز است:

[inter_codes color=”#4A148C”]خروجی
Status: active

To Action From
— —— —-
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)[/inter_codes]

 

برسی webserver

(مرحله سوم)

در پایان مراحل نصب ، اوبونتو ۲۰٫۰۴ وب سرور Nginx را استارت می کند. برای صحت عملکرد میتوانیم با تایپ دستور زیر از فعال بودن و صحت عملکرد وب سرور انجنیکس مطلع شویم:

[inter_codes color=”#4A148C”]systemctl status nginx[/inter_codes]

[inter_codes color=”#4A148C”]خروجی
● nginx.service – A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─۲۳۶۹ nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─۲۳۸۰ nginx: worker process[/inter_codes]

 

همانطور که خروجی نشان میدهد وب سرور بصورت صحیح در حال اجرا میباشد ، این سرویس با موفقیت شروع شده است. با این حال ، بهترین راه برای آزمایش این درخواست در واقع درخواست صفحه از Nginx است.


بهترین راه برای اثبات درستی کار مراجعه به آیپی ادرس سرور میباشد تا بعد از وارد کردن آیپی سرور با صفحه لندینگ Nginx را مشاهده کنیم و حجتی باشد برای اثبات درستی نصب و فعال بودن کامل پروسه ها که البته دلیل محکم و منطقی نمیباشد ولی حداقل درستی راه را نشان میدهد.

نکته: اگر آدرس آیپی سرور را نمیدانید میتوانید با وارد کردن دستور زیر از سایت مورد نظر استعلام آیپی سرور را ارسال کنیم و خروجی که برابر است با آیپی سرور را دریافت کنید,مثل:

[inter_codes color=”#4A148C”]curl -4 icanhazip.com[/inter_codes]

خروجی:

[inter_codes color=”#4A148C”]http://your_server_ip[/inter_codes]

بعد از دریافت آدرس ip آن را در مرورگر وارد کنید و صفحه فرود یا لندینگ پیج انجنیکس را مشاهده میکنید مانند:

آموزش نصب Nginx در اوبونتو
آموزش نصب Nginx در اوبونتو

 

اگر در این صفحه هستید ، سرور شما به درستی کار می کند و آماده مدیریت است.

 

مدیریت پروسه های Nginx

(مرحله چهارم)

حال که مراحل نصب و فعال سازی را به اتمام رساندید با هم به برسی برخی از دستورات پرکاربرد این وب سرور میپردازیم:

در زیر لیستی از پرکاربردترین دستورات nginx را لیست میکنیم:

۱-برای متوقف کردن وب سرور

[inter_codes color=”#4A148C”]sudo systemctl stop nginx[/inter_codes]

۲-برای شروع پروسه وب سرور بعد از متوقف کردن یا بصورت کلی برای شروع پروسه وب سرور

[inter_codes color=”#4A148C”]sudo systemctl start nginx[/inter_codes]

۳-برای restart کردن (ریست کردن پروسه)

[inter_codes color=”#4A148C”]sudo systemctl restart nginx[/inter_codes]

۴-برای بارگیری مجدد یا reload که تفاوت زیادی دارد با ریستارت میتوانید از دستور زیر استفاده کنید.

نکته: reload باعث شروع مجدد پروسه میشود ولی با این تفاوت که اتصالات و… را kill نمیکند و بدون مشکل میتوان بارگزاری مجدد بدون قطع دسترسی ها انجام داد.

[inter_codes color=”#4A148C”]sudo systemctl reload nginx[/inter_codes]

۵-اگر میخواهید بعد از خاموش و روشن شدن سرور مجازی یا سرور اختصاصی Nginx شروع به کار نکند و در لیست استارت اتوماتیک نباشد از دستور زیر استفاده کنید.

[inter_codes color=”#4A148C”]sudo systemctl disable nginx[/inter_codes]

۶-و برای لغو ماهیت دستور بالا و شروع اتوماتیک وب سرور بعد از خاموش و روشن شدن سرور از دستور زیر استفاده کنید.

[inter_codes color=”#4A148C”]sudo systemctl enable nginx[/inter_codes]

 

شما اکنون دستورات مدیریت اساسی وب سرور Nginx را آموخته اید و باید برای پیکربندی سایت آماده باشید تا میزبان بیش از یک دامنه باشد.چنانچه به دستورات لینوکس آشنایی ندارید میتوانید از آموزش دستورات لینوکس استفاده کنید.

به ادامه مقاله آموزش نصب Nginx در اوبونتو میپردازیم.

 

تنظیم بلوک های سرور

(مرحله پنجم)بسیار مهم

هنگام استفاده از وب سرور Nginx ، می توانید از بلاک های سرور (مشابه میزبان های مجازی در آپاچی) برای کپسوله کردن جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور واحد استفاده کنید. ما دامنه ای به نام famaserver.com را راه اندازی می کنیم ، اما شما باید این را با نام دامنه خود جایگزین کنید.
Nginx در اوبونتو ۲۰٫۰۴ دارای یک بلوک سرور است که بصورت پیش فرض فعال شده است تا پیکربندی شود تا اسناد را از یک فهرست در  var/www/html ارائه دهد. اگرچه این یک سایت واحد به خوبی کار می کند ، اگر میزبان چندین سایت باشید ، می تواند ناخوشایند شود. به جای اصلاح  var/www/html ، بیایید یک ساختار دایرکتوری در var/www برای سایت famaserver.com ایجاد کنیم ، در این صورت / var/www/html را در جای خود به عنوان دایرکتوری پیش فرض قرار می دهیم که در صورت عدم درخواست مشتری مطابقت دارد. سایت های دیگر

با استفاده از پرچم -p ، برای ایجاد هر فهرست راهنمایی لازم ، دایرکتوری را برای famaserver.com ایجاد کنید:

[inter_codes color=”#4A148C”]sudo mkdir -p /var/www/famaserver.com/html[/inter_codes]

بعد ، مالکیت دایرکتوری را با متغیر محیط $user اختصاص دهید:

[inter_codes color=”#4A148C”]sudo chown -R $USER:$USER /var/www/famaserver.com/html[/inter_codes]

مجوزهای ریشه وب شما باید صحیح باشد اگر مقدار umask خود را تغییر نداده باشید ، که مجوزهای پیش فرض فایل را تعیین می کند. برای اطمینان از صحیح بودن مجوزهای شما و به مالک اجازه می دهید فایل ها را بخواند ، بنویسد و اجرا کند در حالی که فقط مجوزهای خواندن و اجرای مجوزها را به گروه ها و دیگران اعطا می کنید ، می توانید دستور زیر را وارد کنید:

[inter_codes color=”#4A148C”]sudo chmod -R 755 /var/www/famaserver.com[/inter_codes]

بعد ، با استفاده از nano یا ویرایشگر مورد علاقه خود ، صفحه index.html نمونه را ایجاد کنید:

[inter_codes color=”#4A148C”]nano /var/www/famaserver.com/html/index.html[/inter_codes]

در داخل فایل ایجاد شده با دستور nano محتویات html زیر را وارد کنید:

[inter_codes color=”#4A148C”]<html>
<head>
<title>Welcome to famaserver.com!</title>
</head>
<body>
<h1>Success! The famaserver.com server block is working!</h1>
</body>
</html>[/inter_codes]

یا میتوانید دستورات یا کد های html دلخواه خود را وارد و جایگزین کنید.

پس از اتمام وارد کردن کد های html ویرایشگر nano را ذخیره و خارج شوید.برای ذخیره کلید ctrl+x را بزنید و با تایپ کردن کلید y به نشانه تایید ذخیره کلید enter را زده تا فایل بدرستی ذخیره و خارج شود.

برای اینکه Nginx بتواند این محتوا را ارائه دهد ، لازم است یک بلوک سرور را با دستورالعمل های درست ایجاد کنید. به جای تغییر مستقیم پرونده پیکربندی پیش فرض ، اجازه دهید پرونده جدیدی در /etc/nginx/sites-available/famaserver.com ایجاد کنیم:

[inter_codes color=”#4A148C”]sudo nano /etc/nginx/sites-available/famaserver.com[/inter_codes]

در فایل باز شده زیر که مشابه نوع پیشفرض است ، نام دامنه و مقادیر دیگر را وارد کنید تا بروز شود:

[inter_codes color=”#4A148C”]server {
listen 80;
listen [::]:80;

root /var/www/famaserver.com/html;
index index.html index.htm index.nginx-debian.html;

server_name famaserver.com www.famaserver.com;

location / {
try_files $uri $uri/ =404;
}
}[/inter_codes]

نکته:

 

توجه کنید که پیکربندی root  را در فهرست جدید و نام server_ نام دامنه خود به روز کرده ایم.

در مرحله بعد ، اجازه خواهیم داد پرونده را با ایجاد پیوندی از آن به فهرست سایتهای فعال شده سایتها ، که Nginx هنگام راه اندازی از آن می خواند ، فعال کنیم:

[inter_codes color=”#4A148C”]sudo ln -s /etc/nginx/sites-available/famaserver.com/etc/nginx/sites-enabled/[/inter_codes]

اکنون دو بلوک سرور فعال شده و پیکربندی شده اند تا به درخواست ها بر اساس دستورالعمل های گوش دادن و server_name آنها پاسخ دهن:

۱-famaserver.com:به درخواست های famaserver.com و www.famaserver.com شما پاسخ خواهد داد.

۲-default:به هر درخواست در پورت ۸۰ که با دو بلوک دیگر مطابقت ندارد پاسخ خواهد داد.

برای جلوگیری از بروز مشکل حافظه سطل احتمالی که می تواند ناشی از افزودن نامهای اضافی سرور باشد ، لازم است یک مقدار واحد را در پرونده /etc/nginx/nginx.conf تنظیم کنید. پرونده را باز کنید:

[inter_codes color=”#4A148C”]sudo nano /etc/nginx/nginx.conf[/inter_codes]

دستورالعمل server_names_hash_bucket_size را پیدا کنید و نماد # را حذف کنید تا خط را فعال  کنید. اگر از نانو استفاده می کنید ، می توانید با فشار دادن CTRL و w به سرعت کلمات موجود در پرونده را جستجو کنید.

[inter_codes color=”#4A148C”]…
http {

server_names_hash_bucket_size 64;

}
…[/inter_codes]

پس از اتمام پرونده را ذخیره و خارح شوید.

سپس ، تست کنید تا مطمئن شوید که هیچ خطای نحوی در هیچ یک از پرونده های Nginx شما وجود ندارد:

[inter_codes color=”#4A148C”]sudo nginx -t[/inter_codes]

اگر مشکلی وجود ندارد ، Nginx را مجدداً فعال کنید تا تغییرات خود را فعال کنید:

[inter_codes color=”#4A148C”]sudo systemctl restart nginx[/inter_codes]

اکنون باید در خدمت نام دامنه شما باشد. می توانید با حرکت به http: //famaserver.com ، جایی که باید چیزی شبیه به این را مشاهده کنید :

آموزش نصب Nginx در اوبونتو
آموزش نصب Nginx در اوبونتو

 

آشنایی با پرونده ها و راهنمای مهم Nginx

مرحله آخر

اکنون که می دانید چگونه خود سرویس Nginx را مدیریت کنید ، باید چند دقیقه وقت بگذارید تا خود را با چند فهرست و پرونده مهم آشنا کنید.


محتوا

/var/www/html:محتوای وب واقعی ، که به طور پیش فرض فقط شامل صفحه پیش فرض Nginx است که قبلاً دیدید ، از فهرست /var/www/html استفاده می شود. این امر با تغییر پرونده های پیکربندی Nginx قابل تغییر است.

پیکربندی سرور

/etc/nginx:فهرست پیکربندی Nginx. همه پرونده های پیکربندی Nginx در اینجا ساکن هستند.

/etc/nginx/nginx.conf: پرونده اصلی پیکربندی Nginx. این می تواند برای ایجاد تغییر در تنظیمات جهانی Nginx اصلاح شود.

/etc/nginx/sites-available/: دایرکتوری که در آن بلوکهای سرور هر سایت قابل ذخیره است. Nginx از پرونده های پیکربندی موجود در این فهرست استفاده نمی کند مگر اینکه به فهرست سایت های فعال شده مرتبط باشند. به طور معمول ، تمام پیکربندی بلوک سرور در این دایرکتوری انجام می شود ، و سپس با پیوند دادن به دایرکتوری دیگر فعال می شود.

/etc/nginx/sites-enabled/:دایرکتوری که در آن بلوکهای سرور در هر سایت فعال است. به طور معمول ، اینها با پیوند دادن به فایلهای پیکربندی موجود در فهرست سایتهای موجود ایجاد می شوند.

/etc/nginx/snippets:این فهرست شامل قطعات پیکربندی است که می توان در جایی دیگر در پیکربندی Nginx گنجانید. بخش های پیکربندی قابل تکرار بالقوه کاندیداهای خوبی برای اصلاح مجدد قطعات هستند.

Server Logs(لاگ های سرور)

/var/log/nginx/access.log:هر درخواستی به سرور وب شما در این پرونده ثبت شده ثبت می شود مگر اینکه Nginx پیکربندی شده باشد تا کار دیگری انجام دهد.

/var/log/nginx/error.log: هرگونه خطای Nginx در این گزارش ثبت می شود.

نتیجه گیری میکنیم که اکنون میتوانید تعداد سایت های مختلفی را بر روی وب سرور nginx فعال کنید و در کنار هم از آنها با محتوا و فایل هایی مختلف مدیریت کنید که این امر در همه ی وب سرور ها مرسول و با روش های مختلفی قابل سرویس دهی میباشند مثلا در سرور فاما سرور که باعث بوجود آمدن این دامنه و هاست شده تا شما مقالات ما را مطالعه کنید از وب سرور لایت اسپید استفاده کرده ایم و همینطور وب سرور آپاچی را نیز در کنار لایت اسپید در حال استفاده هستیم و برای درک بهتر موضوع میتوانید مقاله تفاوت Lite speed و Nginx   را مشاهده کنید.

 

شما مقاله آموزش نصب Nginx در اوبونتو را مشاهده کردید و میتوانید برای مطالعه مقالات دیگر ما به وبلاگ فاما سرور مراجعه کنید.

منبع فاما سرور.