از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش راه اندازی هاست مجازی آپاچی روی نمونه اوبونتو EC2 با استفاده از Terraform
سرفصلهای مطلب
“به منظور. واسه اینکه. برای اینکه host چندین وب سایت، مدیران معمولا میزبانی مجازی را پیکربندی می کنند روی یک دستگاه در میزبانی مجازی، میتوانیم از میزبانی مبتنی بر IP یا میزبانی مبتنی بر نام استفاده کنیم. در میزبانی مبتنی بر IP، ما آدرس های IP مجزا برای هر وب سایت داریم. در مورد میزبانی مبتنی بر نام، ما چندین نام در حال اجرا داریم روی هر آدرس IP.”
چه چیزی را پوشش خواهیم داد؟
در این راهنما، خواهیم دید که چگونه می توانیم هاست مجازی را پیکربندی کنیم روی یک نمونه آمازون EC2 اوبونتو 22.04. در این آزمایشگاه از هاست مجازی مبتنی بر نام استفاده خواهیم کرد. ما از Terraform برای استقرار زیرساخت مورد نظر استفاده خواهیم کرد.
مروری بر آزمایشگاه
در این آزمایشگاه دو هاست مجازی ایجاد خواهیم کرد. domain1 و domain2. ما یک وب سرور آپاچی نصب خواهیم کرد روی ماشین اوبونتو ما هر مجازی host دارای یک فایل index.html متفاوت با محتوای: «این مجازی است host 1.” برای domain1 و «این مجازی است host 2.” برای دامنه 2.
به جای ثبت نام دامنه برای هر کدام host، ما در حال استفاده از localhost آدرس IP برای ترسیم نام دامنه. این را می توان با تغییر فایل “hosts” انجام داد. برای ساده سازی استقرار این زیرساخت، پیکربندی کلی را به چندین فایل تقسیم کرده ایم. به این ترتیب، ما خود را از دست و پا چلفتی کد نجات خواهیم داد. خلاصه فایل های استفاده شده در اینجا:
- userdata.sh: حاوی اسکریپت مورد نیاز برای نصب و پیکربندی وب سرور آپاچی است روی نمونه اوبونتو
- secgrp.tf: یک گروه امنیتی برای استفاده با نمونه ایجاد می کند. این گروه امنیتی به SSH و HTTP اجازه ورود ترافیک به نمونه را می دهد.
- domain_2.conf و domain_1.conf: حاوی مجازی است host پیکربندی
- main.tf: نقطه ورودی اصلی/اصلی برای همه فایلهای tf.
پیکربندی Setup
مرحله 1. اجازه دهید ابتدا یک دایرکتوری کاری ایجاد کنیم که همه فایلهای .tf ما را نگه میدارد:
مرحله 2. فایل userdata.sh را ایجاد کنید:
حالا خطوط زیر را داخل آن بچسبانید:
سودو آپدیت apt-get
سودو آپدیت apt-get -y
سودو apt-get نصب کنید آپاچی 2 -y
سودو systemctl apache2 را مجددا راه اندازی کنید
سودو ش -ج “echo 127.0.0.1 www.domain1.com >> /etc/hosts”
سودو ش -ج “echo 127.0.0.1 www.domain2.com >> /etc/hosts”
سودو mkdir -پ /var/www/domain_1/public_html
سودو mkdir -پ /var/www/domain_2/public_html
سودو چاشنی -ر USER $:USER $ /var/www/domain_1/public_html
سودو چاشنی -ر USER $:USER $ /var/www/domain_2/public_html
سودو chmod -ر 755 /var/www
سودو اکو “این هست Virtual Host 1” > /var/www/domain_1/public_html/index.html
سودو اکو “این هست Virtual Host 2” > /var/www/domain_2/public_html/index.html
سودو cp /خانه/اوبونتو/domain_1.conf /و غیره/آپاچی 2/سایت های موجود/domain_1.conf
سودو cp /خانه/اوبونتو/domain_2.conf /و غیره/آپاچی 2/سایت های موجود/domain_2.conf
سودو a2ensite domain_1.conf
سودو a2ensite domain_2.conf
سودو a2dissite 000-default.conf
سودو systemctl apache2 را مجددا راه اندازی کنید
در اسکریپت بالا یک وب سرور آپاچی نصب کردیم و آن را اصلاح کردیم hostفایل برای نقشه برداری از localhost آدرس به نام دامنه دو میزبان مجازی که می خواهیم پیکربندی کنیم. همچنین، ما وب سرور را برای وب سایت های جدید پیکربندی کرده ایم و پیش فرض را غیرفعال کرده ایم.
مرحله 3. فایل secgrp.tf را ایجاد کنید تا به ترافیک ورودی SSH و HTTP از هر نقطه و ترافیک خروجی به هر نقطه اجازه دهد.
خطوط زیر را داخل آن بچسبانید:
نام = “sec-grpg”
شرح = “اجازه دادن به ترافیک HTTP و SSH از طریق Terraform”
ورود {
from_port = 80
to_port = 80
پروتکل = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}
ورود {
from_port = 22
to_port = 22
پروتکل = “tcp”
cidr_blocks = [“0.0.0.0/0”]
}
خروج {
from_port = 0
to_port = 0
پروتکل = “-1”
cidr_blocks = [“0.0.0.0/0”]
}
}
مرحله 4. برای مجازی host پیکربندی، دو فایل ایجاد کنید: domain_1.conf و domain_2.conf. به محل ریشه سند در هر فایل توجه کنید.
I. $ nano domain_1.conf
ادمین سرور ادمین@domain1.com
Servername domain1
ServerAlias www.domain1.com
DocumentRoot /var/www/domain_1/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
میزبان مجازی>
II. $ nano domain_2.conf
ادمین سرور ادمین@domain2.com
Servername domain2
ServerAlias www.domain2.com
DocumentRoot /var/www/domain_2/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log ترکیب شده است
میزبان مجازی>
مرحله 5. در نهایت، main.tf را برای تکمیل اعلان زیرساخت ایجاد کنید:
ارائه دهنده “اوس” {
منطقه =“us-east-1”
}
منبع “aws_instance” “وب سرور” {
آمی =“ami-09d56f8956ab235b3”
نمونه_نوع = “t2.micro”
نام_کلید = “Name-of-your-Ec2-Key-Pair”
vpc_security_group_ids = [aws_security_group.demo-sg.id]
associate_public_ip_address = درست است، واقعی
تامین کننده “فایل” {
منبع = “domain_1.conf”
مقصد = “/home/ubuntu/domain_1.conf”
ارتباط {
نوع = “ssh”
کاربر = “اوبونتو”
کلید_خصوصی = “${file(“/Path/to//EC2-keyPair.pem”)}“
host = “${self.public_dns}“
}
}
تامین کننده “فایل” {
منبع = “domain_2.conf”
مقصد = “/home/ubuntu/domain_2.conf”
ارتباط {
نوع = “ssh”
کاربر = “اوبونتو”
کلید_خصوصی = “${file(“/Path/to//EC2-keyPair.pem”)}“
host = “${self.public_dns}“
}
}
user_data = “${file(“userdata.sh”)}“
برچسب ها = {
نام = “میزبان مجازی”
}
}
خروجی “آدرس آی پی” {
ارزش = “${aws_instance.webserver.public_ip}“
}
در فایل .tf بالا، ما از ارائه دهنده فایل برای کپی کردن ” استفاده کرده ایم.domain.conf” فایل از سیستم محلی ما به نمونه EC2. این “domain.conf” به عنوان یک فایل الگو برای مجازی سازی دامنه خاص استفاده خواهد شد host فایل ها، یعنی “domain_1.conf” و “domain_2.conf”.
مرحله 6. همه فایل های پیکربندی ما اکنون آماده هستند. اکنون زمان آن رسیده است که این پیکربندی را به طور واقعی اجرا کنیم. دایرکتوری پروژه را با استفاده از:
در نهایت با اجرای دستور زیر پروژه را بسازید:
“بله” را وارد کنید روی را terminal وقتی پرسیده شد از نمونه EC2 خود، از دستور “curl” استفاده کنید تا ببینید هر آدرس دامنه چه چیزی را نشان می دهد:
نتیجه
میزبانی مجازی یک تکنیک بسیار کارآمد برای مدیریت چندین وب سایت از یک سرور واحد است. در این آزمایشگاه، ما دیدیم که چگونه Terraform می تواند برای استقرار یک دو ساده استفاده شود.host زیر ساخت. سعی کنید با پیاده سازی ماژول های Terraform این پیکربندی را مقیاس پذیرتر کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 05:53:04