معرفی
Nginx یکی از محبوب ترین سرورهای وب در جهان است و وظیفه میزبانی برخی از بزرگترین و پر بازدیدترین سایت های اینترنتی را بر عهده دارد. در بیشتر موارد از Apache بیشتر منابع دوستانه است و می تواند به عنوان وب سرور یا پروکسی معکوس استفاده شود.
در این راهنما ، نحوه نصب Nginx را روی سرور Ubuntu 18.04 و فایل ها و فهرستهای مهم Nginx خواهید آموخت.
پیش نیازها
قبل از شروع این راهنما ، باید یک کاربر معمولی و غیر روت با امتیازات sudo و یک فایروال اساسی پیکربندی شده روی سرور خود داشته باشید. با پیگیری پیکربندی یک حساب کاربری معمولی می توانید با پیروی از راهنمای راه اندازی سرور اولیه ما برای اوبونتو 18.04 آشنا شوید.
هنگامی که یک حساب کاربری در دسترس دارید ، برای شروع به عنوان کاربر غیر ریشه خود وارد شوید.
مرحله 1 – نصب Nginx
از آنجا که Nginx در پیش فرض اوبونتو موجود است ، می توان پکیج مناسب آن را نصب کرد.
از آنجا که ممکن است این اولین تعامل شما با سیستم پکیج مناسب در این جلسه باشد ، فهرست بسته محلی را به روز کنید تا به آخرین لیست بسته ها دسترسی داشته باشید. پس از آن ، می توانید nginx را نصب کنید:
sudo apt update
sudo apt install nginx
پس از قبول روند ، apt Nginx و هرگونه وابستگی مورد نیاز به سرور شما را نصب می کند.
مرحله 2 – تنظیم فایروال
قبل ازتست Nginx ، نرم افزار فایروال باید تنظیم شود تا دسترسی به سرویس امکان پذیر باشد. Nginx هنگام نصب خود را به عنوان یک سرویس با ufw ثبت می کند و دسترسی به Nginx را ساده می کند.
تنظیمات برنامه ای را که ufw نحوه کار با آنها را می داند ، با تایپ موارد زیر فهرست کنید:
sudo ufw app list
خروجی شما باید لیستی از پروفایل های برنامه باشد:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
این لیست سه نمایه موجود برای Nginx را نمایش می دهد:
- Nginx Full: این نمایه هم پورت 80 (ترافیک معمولی و رمزگذاری نشده وب) و هم پورت 443 (ترافیک رمزگذاری شده TLS/SSL) را باز می کند.
- Nginx HTTP: این نمایه فقط پورت 80 را باز می کند (ترافیک وب معمولی و رمزگذاری نشده)
- Nginx HTTPS: این نمایه فقط پورت 443 را باز می کند (ترافیک رمزگذاری شده TLS/SSL)
توصیه می شود محدود کننده ترین نمایه را فعال کنید که همچنان ترافیکی را که پیکربندی کرده اید اجازه می دهد. از آنجا که هنوز SSL را برای سرور خود در این راهنما پیکربندی نکرده اید ، فقط باید اجازه دهید ترافیک در پورت 80 مجاز باشد.
با تایپ موارد زیر می توانید این مورد را فعال کنید:
sudo ufw allow ‘Nginx HTTP’
سپس ، تغییر را تأیید کنید:
sudo ufw status
شما باید لیستی از ترافیک HTTP مجاز در خروجی را دریافت کنید:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
اکنون که قانون فایروال مناسب را اضافه کرده اید ، می توانید بررسی کنید که سرور وب شما در حال اجرا است و بتواند محتوا را به درستی ارائه دهد.
مرحله 3 – بررسی سرور وب خود
در پایان مراحل نصب ، اوبونتو 18.04 Nginx را راه اندازی می کند. سرور وب باید از قبل فعال باشد.
برای اطمینان از اینکه سرویس در حال اجرا است ، با سیستم systemd init تماس بگیرید:
systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Fri 2021-10-01 21:36:15 UTC; 35s ago
Docs: man:nginx(8)
Main PID: 9039 (nginx)
Tasks: 2 (limit: 1151)
CGroup: /system.slice/nginx.service
├─9039 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
└─9041 nginx: worker process
این خروجی نشان می دهد که سرویس با موفقیت شروع شده است. با این حال ، بهترین راه برای آزمایش این است که در واقع یک صفحه از Nginx درخواست کنید.
برای اطمینان از عملکرد صحیح نرم افزار با حرکت به آدرس IP سرور خود ، می توانید به صفحه فرود پیش فرض Nginx دسترسی پیدا کنید. اگر آدرس IP سرور خود را نمی دانید ، می توانید آن را از چند طریق مختلف دریافت کنید.
سعی کنید موارد زیر را در خط فرمان سرور خود تایپ کنید:
ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’
چند خط دریافت خواهید کرد. می توانید هر کدام را در مرورگر وب خود امتحان کنید که آیا کار می کند یا خیر.
جایگزینی در حال اجرای دستور زیر است که باید آدرس IP عمومی شما را از محل دیگری در اینترنت مشخص کند:
curl -4 icanhazip.com
وقتی آدرس IP سرور خود را دارید ، آن را در نوار آدرس مرورگر خود وارد کنید:
http://your_server_ip
شما باید صفحه فرود پیش فرض Nginx را دریافت کنید:
این صفحه شامل Nginx است تا از صحت عملکرد سرور اطمینان حاصل شود.
مرحله 4 – مدیریت فرایند Nginx
اکنون که سرور وب خود را فعال کرده اید ، اجازه دهید برخی از دستورات اصلی مدیریت را مرور کنیم.
برای توقف سرور وب ، موارد زیر را تایپ کنید:
sudo systemctl stop nginx
برای راه اندازی وب سرور در صورت توقف ، موارد زیر را تایپ کنید:
sudo systemctl start nginx
برای توقف و سپس شروع مجدد سرویس ، موارد زیر را تایپ کنید:
sudo systemctl restart nginx
اگر به سادگی تغییرات پیکربندی را انجام می دهید ، اغلب می توانید Nginx را بدون قطع اتصال به جای راه اندازی مجدد بارگیری مجدد کنید. برای این کار موارد زیر را تایپ کنید:
sudo systemctl reload nginx
به طور پیش فرض ، Nginx پیکربندی شده است تا هنگام بوت شدن سرور به طور خودکار شروع به کار کند. اگر این آن چیزی نیست که می خواهید ، می توانید با تایپ موارد زیر این رفتار را غیرفعال کنید:
sudo systemctl disable nginx
برای فعال کردن مجدد سرویس هنگام راه اندازی ، می توانید موارد زیر را تایپ کنید:
sudo systemctl enable nginx
هنگامی که سرور دوباره بوت می شود ، Nginx باید به طور خودکار شروع به کار کند.
مرحله 5 – راه اندازی بلوک های سرور (توصیه می شود)
هنگام استفاده از وب سرور Nginx ، می توان از بلوک های سرور (مشابه میزبان مجازی در Apache) برای درج جزئیات پیکربندی و میزبانی بیش از یک دامنه از یک سرور استفاده کرد. ما یک دامنه به نام your_domain ایجاد می کنیم ، اما شما باید نام دامنه خود را جایگزین آن کنید. برای کسب اطلاعات بیشتر در مورد تنظیم نام دامنه با vpsgol ، به مقدمه ما در vpsgol DNS مراجعه کنید.
Nginx در اوبونتو 18.04 دارای یک بلوک سرور است که به طور پیش فرض فعال است و پیکربندی شده است تا اسناد خارج از فهرست را در/var/www/html ارائه دهد. اگرچه این کار برای یک سایت واحد خوب عمل می کند ، اما اگر از چندین سایت میزبانی می کنید ، ممکن است مشکل باشد. به جای تغییر/var/www/html ، بیایید یک ساختار فهرست در/var/www برای سایت your_domain ایجاد کنیم ، در صورتی که درخواست مشتری با هیچ یک مطابقت نداشته باشد ،/var/www/html را به عنوان دایرکتوری پیش فرض در جای خود قرار دهیم.
با استفاده از پرچم -p برای ایجاد هر دایرکتوری اصلی لازم ، دایرکتوری را برای domain_s خود به شرح زیر ایجاد کنید:
sudo mkdir -p /var/www/your_domain/html
سپس ، مالکیت دایرکتوری را با متغیر محیط USER $ تعیین کنید:
sudo chown -R $USER:$USER /var/www/your_domain/html
اگر مقدار umask خود را تغییر نداده اید ، مجوز ریشه های وب شما باید صحیح باشد ، اما می توانید با تایپ موارد زیر مطمئن شوید:
sudo chmod -R 755 /var/www/your_domain
سپس ، یک صفحه نمونه index.html با استفاده از nano یا ویرایشگر مورد علاقه خود ایجاد کنید:
nano /var/www/your_domain/html/index.html
داخل ، نمونه HTML زیر را اضافه کنید:
پس از اتمام کار فایل را ذخیره و ببندید. اگر از نانو استفاده می کنید ، می توانید با فشار دادن CTRL + X و Y و ENTER خارج شوید.
برای اینکه Nginx این محتوا را ارائه دهد ، لازم است یک بلوک سرور با دستورالعمل های صحیح ایجاد کنید. به جای تغییر مستقیم فایل پیکربندی پیش فرض ، یک فایل جدید در آدرس/etc/nginx/sites-available/your_domain قرار دهید:
sudo nano /etc/nginx/sites-available/your_domain
بلوک پیکربندی زیر را اضافه کنید ، که مشابه پیش فرض است ، اما برای فهرست جدید و نام دامنه شما به روز شده است:
توجه داشته باشید که پیکربندی ریشه را به فهرست جدید و نام server_ را به نام دامنه به روز کرده ایم. پس از اتمام کار فایل را ذخیره و ببندید.
در مرحله بعد ، فایل را با ایجاد پیوندی از آن به فهرست راهنمای سایتها فعال کنید ، که Nginx هنگام راه اندازی آن را می خواند:
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
دو بلوک سرور در حال حاضر فعال و پیکربندی شده است تا به درخواست ها بر اساس دستورات listen و server_name آنها پاسخ دهد (در مورد نحوه پردازش این دستورالعمل ها توسط Nginx در اینجا بیشتر بخوانید):
- your_domain: به درخواست های مربوط به دامنه و www.your_domain شما پاسخ می دهد.
- پیش فرض: به هرگونه درخواست در پورت 80 که با دو بلوک دیگر مطابقت ندارد پاسخ می دهد.
برای جلوگیری از مشکل احتمالی حافظه سطل هش که ممکن است از افزودن نام سرور اضافی بوجود آید ، لازم است یک مقدار واحد در فایل /etc/nginx/nginx.conf تنظیم شود. فایل را باز کنید:
sudo nano /etc/nginx/nginx.conf
دستور server_names_hash_bucket_size را پیدا کرده و علامت # را حذف کنید تا خط را کامنت نگذارید:
پس از اتمام کار فایل را ذخیره و ببندید.
در مرحله بعد ، آزمایش کنید تا مطمئن شوید هیچ خطای نحوی در هیچ یک از فایل های Nginx شما وجود ندارد:
sudo nginx -t
اگر مشکلی وجود نداشت ، Nginx را راه اندازی مجدد کنید تا تغییرات خود را فعال کنید:
sudo systemctl restart nginx
Nginx اکنون باید به نام دامنه شما خدمت کند. می توانید این مورد را با حرکت به http: // your_domain ، جایی که باید چیزی شبیه به این را مشاهده کنید ، آزمایش کنید:
مرحله 6 – آشنایی با فایلها و فهرستهای مهم 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 در این گزارش ثبت می شود.
نتیجه
اکنون که سرور وب خود را نصب کرده اید ، گزینه های زیادی برای نوع محتوا برای ارائه و فناوری هایی که می خواهید برای ایجاد یک تجربه غنی تر استفاده کنید ، در اختیار دارید.
https://vpsgol.net/product/vps-germany/
https://vpsgol.net/product/vps-usa/
https://vpsgol.net/product/vps-france/
https://vpsgol.net/product/vps-canada/
https://vpsgol.net/product/vps-poland/
https://vpsgol.net/product/vps-netherlands/
https://vpsgol.net/product/vps-england/