تجربه من در تنظیم NGINX در سرور اوبونتو در AWS – HNG DevOps

مقدمه
به عنوان بخشی از تکالیف DevOps Stage 0 ، من وظیفه داشتم یک سرور وب NGINX را بر روی یک سرور تازه اوبونتو که در AWS میزبانی شده است ، تنظیم کنم. هدف پیکربندی NGINX برای ارائه یک صفحه HTML سفارشی با یک پیام خاص و مستند سازی تجربه من در یک پست وبلاگ بود. در حالی که این کار نسبتاً اساسی بود ، به عنوان یک تازه کننده عالی در شیوه های بنیادی DevOps و مدیریت زیرساخت های ابری خدمت می کرد. در زیر ، من رویکرد ، بینش و تأملات خود را در مورد چگونگی کمک به این کار به رشد حرفه ای من به اشتراک می گذارم.
رویکرد به انجام کار
این کار شامل چندین مرحله کلیدی بود که هر یک از آنها درک من از زیرساخت های ابری و پیکربندی سرور وب را تقویت کرد. در اینجا نحوه نزدیک شدن به آن آورده شده است:
-
تنظیم محیط AWS:
- من یک نمونه EC2 Ubuntu را با استفاده از VPC پیش فرض AWS و یک زیر شبکه عمومی راه اندازی کردم. این تضمین می کند که سرور به اینترنت دسترسی داشته باشد و از طریق SSH و HTTP می توان به آن رسید.
- من گروه امنیتی را پیکربندی کردم تا امکان ترافیک SSH (پورت 22) و HTTP (پورت 80) را فراهم کنم و از اتصال ایمن و در عین حال در دسترس اطمینان حاصل کنم.
-
اتصال به نمونه EC2:
- با استفاده از
.pem
جفت کلیدی تولید شده در طول ایجاد نمونه ، من از طریق SSH به سرور وصل شدم. این مرحله به من اهمیت مدیریت کلید امن و نقش SSH در مدیریت سرور از راه دور را یادآوری می کند.
- با استفاده از
-
نصب و پیکربندی nginx:
- من لیست بسته را به روز کردم و nginx را با استفاده از آن نصب کردم
apt
، مدیر بسته اوبونتو. این مرحله سادگی مدیریت بسته در سیستم های مبتنی بر لینوکس را برجسته می کند. - بعد از نصب ، من تأیید کردم که Nginx در حال اجرا است و آن را قادر به شروع Boot می کند. این تضمین می کند که سرور وب حتی پس از راه اندازی مجدد سیستم عملیاتی می شود.
- من لیست بسته را به روز کردم و nginx را با استفاده از آن نصب کردم
-
ایجاد یک صفحه HTML سفارشی:
- من صفحه فرود پیش فرض Nginx را با یک فایل HTML سفارشی واقع در
/var/www/html/index.html
بشر پرونده حاوی پیام است: “به مرحله DevOps خوش آمدید – [Your Name]/[SlackName]. “ - این مرحله درک من از نحوه ارائه سرورهای وب به محتوای استاتیک و اهمیت مجوزهای پرونده و ساختارهای دایرکتوری را تقویت می کند.
- من صفحه فرود پیش فرض Nginx را با یک فایل HTML سفارشی واقع در
-
آزمایش پیکربندی:
- من به آدرس IP عمومی سرور در یک مرورگر وب دسترسی پیدا کردم و تأیید کردم که صفحه HTML سفارشی به درستی نمایش داده شده است. این مرحله تأیید کرد که سرور به درستی پیکربندی شده و از طریق اینترنت قابل دسترسی است.
بینش به دست آمد
در حالی که این کار ساده بود ، بینش های ارزشمندی را ارائه می داد و به عنوان یک تازه کننده خوب در چندین مفهوم کلیدی ارائه می شد:
-
اصول زیرساخت ابری:
- راه اندازی یک نمونه EC2 و پیکربندی گروه های امنیتی من را به یاد اصول اساسی محاسبات ابری ، مانند مجازی سازی ، شبکه سازی و امنیت می اندازد.
-
مدیریت سرور لینوکس:
- همکاری با اوبونتو آشنایی من را با دستورات لینوکس ، مدیریت بسته و ناوبری سیستم پرونده تقویت کرد. این مهارت ها برای هر مهندس DevOps ضروری است.
-
پیکربندی سرور وب:
- نصب و پیکربندی NGINX درک من از نحوه عملکرد سرورهای وب و نحوه ارائه محتوای استاتیک را عمیق تر کرد. همچنین اهمیت اطمینان از خدمات و در دسترس بودن خدمات را برجسته می کند.
-
پتانسیل اتوماسیون:
- در حالی که من این مراحل را به صورت دستی انجام دادم ، تشخیص دادم که چگونه ابزارهایی مانند Ansible ، Terraform یا AWS CloudFormation می توانند این فرآیند را به صورت خودکار ، صرفه جویی در وقت و کاهش خطای انسانی.
چالش ها و راه حل ها
خوشبختانه ، من در طی این کار با هیچ چالش مهمی روبرو نشدم. با این حال ، من می توانم چند موضوع بالقوه و نحوه پرداختن به آنها را تصور کنم:
-
مسائل مربوط به اتصال SSH:
- اگر قادر به اتصال به نمونه EC2 خود نیستید ، اطمینان حاصل کنید که:
- گروه امنیتی امکان ترافیک SSH را از IP شما فراهم می کند.
- در
.pem
پرونده دارای مجوزهای صحیح است (chmod 400 your-key.pem
). - نمونه دارای یک IP عمومی است.
- اگر قادر به اتصال به نمونه EC2 خود نیستید ، اطمینان حاصل کنید که:
-
nginx شروع نمی شود:
- اگر NGINX نتواند شروع کند ، سیاهههای مربوط به خطاها را بررسی کنید:
sudo systemctl status nginx sudo journalctl -xe
- موضوعات متداول شامل درگیری های بندر یا غلط های نادرست در پرونده های پیکربندی NGINX است.
-
صفحه HTML سفارشی نمایش داده نمی شود:
- اطمینان از
index.html
پرونده در فهرست صحیح است (/var/www/html
) و مجوزهای مناسب را دارد:
sudo chown www-data:www-data /var/www/html/index.html sudo chmod 644 /var/www/html/index.html
- اطمینان از
رشد شخصی و ارتباط حرفه ای
این کار ، گرچه اساسی است ، اما با اهداف حرفه ای گسترده تر من هماهنگ است و از چند طریق به رشد من کمک می کند:
-
مهارت های DevOps بنیادی:
- راه اندازی یک سرور وب یک کار اساسی DevOps است. این اهمیت درک زیرساخت ها را به عنوان کد ، مدیریت پیکربندی و خطوط لوله استقرار تقویت می کند.
-
مهارت ابر:
- کار با AWS EC2 و VPC ، مهارت های محاسبات ابری من را افزایش می دهد ، که برای نقش های مدرن DevOps بسیار مهم است. همچنین من را برای کارهای پیشرفته تر مانند تعادل بار ، مقیاس خودکار و استقرار چند منطقه آماده می کند.
-
طرز فکر حل مسئله:
- حتی اگر این بار با چالش هایی روبرو نشدم ، این کار مرا ترغیب کرد که با انتقاد از موضوعات احتمالی و راه حل های آنها فکر کنم. این طرز فکر در سناریوهای DevOps در دنیای واقعی بسیار ارزشمند است.
-
آماده سازی برای کارهای پیشرفته:
- این کار زمینه را برای پروژه های پیچیده تر مانند استقرار برنامه های وب پویا ، تنظیم خطوط لوله CI/CD یا پیکربندی نظارت و ورود به سیستم برای سرورهای وب فراهم می کند.
-
تراز شغلی:
- همانطور که من آرزو می کنم مهندس DevOps شوم ، کارهایی مانند این با مهارت های مورد نیاز برای نقش هایی مانند مهندسان DevOps و مهندسان ابر مطابقت دارد. آنها همچنین من را برای گواهینامه هایی مانند معمار راه حل های معتبر AWS یا مدیر معتبر Kubernetes آماده می کنند.
پایان
تکمیل این کار پیکربندی NGINX یک تجربه پاداش دهنده بود که دانش بنیادی من در مورد زیرساخت های ابری ، مدیریت لینوکس و پیکربندی سرور وب را تقویت کرد. در حالی که این کار نسبتاً ساده بود ، به عنوان یادآوری اهمیت تسلط بر اصول اولیه قبل از مقابله با چالش های پیچیده تر خدمت می کرد. با ادامه سفر DevOps ، من مشتاقانه منتظر ساختن این بنیاد و بررسی موضوعات پیشرفته تر مانند اتوماسیون ، کانتینر و ارکستراسیون هستم.
منابع
- مهندسان DevOps – HNG Tech
- مهندسان ابر – HNG Tech