برنامه نویسی

راه اندازی یک سرور وب Nginx در Azure: تجربه DevOps HNG Stage 0

مقدمه

به عنوان بخشی از کارآموزی DevOps HNG ، من تکمیل کردم مرحله 0: پیکربندی nginx با نصب و پیکربندی یک سرور وب NGINX در دستگاه اوبونتو. این پست وبلاگ یک راهنما را ارائه می دهد ، جزئیات رویکرد من ، چالش های پیش روی ، راه حل های اجرا شده و راه حل های کلیدی از این کار را ارائه می دهد.

مرور کلی

هدف این کار این بود:

  1. NGINX را روی سرور اوبونتو نصب و پیکربندی کنید.
  2. صفحه پیش فرض NGINX را با یک فایل HTML سفارشی جایگزین کنید:

    Welcome to DevOps Stage 0 - [Your Name]/[SlackName]
  3. اطمینان حاصل کنید که این صفحه از طریق آدرس IP عمومی قابل دسترسی است.

رویکرد گام به گام

1⃣ تنظیم سرور اوبونتو در لاجورد

از آنجا که این کار به یک نمونه تازه اوبونتو نیاز داشت ، من یک مستقر کردم اوبونتو 22.04 ماشین مجازی روشن مایکروسافت لاجورد به دنبال این مراحل:

  • وارد پورتال لاجورد شد.
    پورتال لاجورد

  • پیمایش به ماشین های مجازی و انتخاب شد ایجاد> دستگاه مجازی Azureبشر

دستگاه مجازی

  • انتخاب شده اوبونتو 22.04 LTS به عنوان سیستم عامل و تنظیم دستگاه.

ایجاد ماشین مجازی در پورتال لاجورد

  • پیکربندی شده قوانین بندر ورودی، در ابتدا فقط SSH (بندر 22) ، که بعداً باعث ایجاد مشکلات دسترسی شد.

بندر ورودی

  • پس از استقرار ، کپی کرد آدرس IP عمومی و از طریق SSH وصل شده است:
   ssh username@my-server-ip
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

2 به روزرسانی سیستم

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

sudo apt update && sudo apt upgrade -y
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

بروزرسانی سیستم

3 ⃣ نصب nginx

برای نصب و تأیید nginx:

sudo apt install nginx -y
sudo systemctl status nginx
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

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

sudo systemctl start nginx
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

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

sudo systemctl enable nginx
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

وضعیت nginx

4⃣ پیکربندی صفحه وب سفارشی

برای پاسخگویی به نیازهای کار ، من اصلاح کردم index.html پرونده:

sudo nano /var/www/html/index.html
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

محتوای پیش فرض را جایگزین کرد:




    </span>Welcome<span class="nt"/>
<span class="nt"/>
<span class="nt"/>
    <span class="nt"/>Welcome to DevOps Stage 0 - [Your Name]/[SlackName]<span class="nt"/>
<span class="nt"/>
<span class="nt"/>
</code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
    <svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>حالت تمام صفحه را وارد کنید
    

از حالت تمام صفحه خارج شوید

پس از ذخیره پرونده ، من Nginx را مجدداً راه اندازی کردم:

sudo systemctl restart nginx
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

HTML سفارشی

5⃣ پیکربندی قوانین درگاه ورودی در مورد لاجورد

در ابتدا ، من به دلیل محدودیت های قانون ورودی نمی توانم به صفحه وب دسترسی پیدا کنم. من این کار را با اجازه ترافیک HTTP (بندر 80) حل کردم.

با استفاده از پورتال لاجورد:

  1. پیمایش به ماشین های مجازی > VM من را انتخاب کردم> شبکه > Network Settins.
  2. کلیک کرد قانون بندر را ایجاد کنیدبشر
  3. تنظیم کردن بندر مقصد به 80با پروتکل به TCPوت عمل به Allowبشر
  4. تغییرات را ذخیره کنید.

قانون بندری

6 ⃣ آزمایش صفحه وب

من با باز کردن یک مرورگر و بازدید ، تنظیمات را تأیید کردم:

http://my-server-ip:80
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

پیام سفارشی با موفقیت نمایش داده می شود و نشانگر پیکربندی موفقیت آمیز است.

HTML سفارشی در مرورگر

چالش ها و راه حل ها

🔴 چالش 1: انتخاب سرور مناسب و در دسترس بودن IP عمومی

صادر کردن: اولین چالشی که من با آن روبرو شدم تصمیم گیری در مورد استفاده از سرور برای این پروژه بود. در ابتدا ، من استفاده از Raspberry Pi خود را در نظر گرفتم ، اما به دلیل محدودیت ISP با بدست آوردن آدرس IP عمومی پایدار روبرو شدم.

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

🔴 چالش 2: پیکربندی درگاه های ورودی در لاجورد

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

راه حل: من تنظیمات گروه امنیتی شبکه را اصلاح کردم تا امکان ترافیک ورودی در بندر 80 از طریق پورتال لاجورد و CLI فراهم شود.

قانون بندری

غذای اصلی

این پروژه تجربه بسیار ارزشمندی را با:

  • زیرساخت ابری: تنظیم یک ubuntu vm on لاجوردبشر

  • مدیریت سرور لینوکس: رسیدگی به اتصالات SSH و مدیریت بسته.

  • پیکربندی سرور وب: نصب و مدیریت چیز کوچکبشر

  • شبکه سازی و امنیت: پیکربندی قوانین ورودی برای اجازه ترافیک وب.

  • عیب یابی: اشکال زدایی موضوعات مربوط به قوانین فایروال و وضعیت Nginx.

چگونه این کار به سفر DevOps من کمک می کند

انجام این کار تجربه عملی را در من فراهم کرد مدیریت سیستم لینوکسبا شبکهوت عیب یابی– مهارت های DevOps. من همچنین توانایی خود را در مستندسازی تنظیمات و حل چالش های استقرار در دنیای واقعی بهبود بخشیدم.

پایان

این تجربه توانایی من را بهبود بخشید تنظیم ، پیکربندی و عیب یابی سرورهای وب ضمن تقویت بهترین شیوه ها برای امنیت ابر و شبکه. منتظر کارهای بیشتر HNG هستم! 💪

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا