مقدمه
ما Nginx Proxy Manager را نصب خواهیم کرد که یک نرم افزار منبع باز است که برای استفاده آسان از وب سرور Nginx از طریق یک رابط کاربری ساخته شده است. با Nginx Proxy Manager، میتوانید میزبانهای پروکسی، میزبانهای تغییر مسیر، استریمها و میزبانهای 404 ایجاد کنید.
پیش نیازها
- سروری با آدرس IPv4 اختصاصی
- دانش اولیه لینوکس و ترمینال
- پورت های 80، 81، 443 موجود است
مرحله 1 – یک سرور جدید ایجاد کنید
ایجاد یک سرور جدید، به عنوان مثال با هتسنر
هنگامی که سرور خود را ایجاد می کنید، مطمئن شوید که سیستم عاملی را انتخاب کنید که توسط Docker پشتیبانی می شود. این آموزش از اوبونتو 24.04 استفاده خواهد کرد. همچنین، یک طرح استاندارد باید برای یک پروکسی معکوس با ترافیک نه چندان کافی کافی باشد.
همچنین توصیه می شود یک کلید SSH اضافه کنید.
به دلایل امنیتی، استفاده از کاربر ریشه توصیه نمی شود. در عوض، باید یک کاربر جدید ایجاد کنید و این کاربر را به گروه sudo اضافه کنید
مرحله 2 – نصب Docker و Nginx Proxy Manager
- در حال اتصال به سرور شما
ابتدا، می توانید با اتصال به سرور جدید خود از طریق SSH شروع کنید.
ssh holu@<server_ip>
- نصب Docker
برای نصب داکر در اوبونتو دستورات زیر را اجرا کنید. اگر سرور شما دارای سیستم عامل متفاوتی است، مطمئن شوید که دستورات صحیح را جستجو کرده اید (نصب Docker – پلتفرم های پشتیبانی شده را ببینید).
کلید GPG و مخزن Docker را اضافه کنید:
# Uninstall old versions
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
# Install prerequisites
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
# Add Docker’s official GPG key
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Set up stable repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engine و Docker Compose را نصب کنید:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Test the installation
docker --version
docker compose version
ما Docker و Docker Compose را با موفقیت نصب کردیم.
کاربر خود را به گروه Docker اضافه کنید:
sudo usermod -aG docker <user>
برای به روز رسانی گروه های کاربر خود از سیستم خارج شوید و دوباره وارد شوید.
اکنون باید خود Nginx Proxy Manager را نصب کنیم.
- نصب Nginx Proxy Manager
یک دایرکتوری جدید برای مدیر پروکسی nginx ایجاد کنید:
mkdir -p npm
cd npm
دستورات زیر که در زیر ذکر شده را اجرا کنید.
# Create a docker-compose configuration file
touch docker-compose.yml
# Editing the file
nano docker-compose.yml
محتویات زیر را در فایلی که در زیر ذکر شده است قرار دهید.
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
# network_mode: 'host'
نکته در مورد network_mode:
- اگر قصد دارید به سرورهای خارجی با IPهای عمومی پروکسی کنید، به network_mode نیاز ندارید.
- اگر قصد دارید به کانتینرهای محلی Docker پروکسی کنید و می خواهید به 127.0.0.1 اشاره کنید:<container-port>، به network_mode نیاز دارید و باید نماد هش را در ابتدای خط حذف کنید.
اکنون باید پشته را با اجرای دستور زیر بالا بیاوریم.
docker compose up -d
اکنون باید بتوانیم با جزئیات زیر به رابط کاربری مدیریت دسترسی داشته باشیم.
آدرس IPv4 عمومی خود را جایگزین 203.0.113.1 کنید
رابط کاربری مدیریت: http://203.0.113.1:81
کاربر پیش فرض مدیریت:
Email: [email protected]
Password: changeme
مرحله 3 – دسترسی به رابط کاربری admin
بلافاصله پس از ورود با کاربر پیش فرض، باید مشخصات خود را تغییر داده و رمز عبور خود را تغییر دهید.
صفحه ورود به سیستم مدیریت باید شبیه تصویر زیر باشد.
هنگامی که وارد سیستم شدید و تمام جزئیات پیش فرض را تغییر دادید، می توانید “داشبورد” را مشاهده کنید.
ایجاد اولین هاست پروکسی شما نسبتاً ساده است. در “داشبورد”، روی “0 Host Proxy” » “Add Proxy Host” کلیک کنید. در زیر یک اسکرین شات از یک پیکربندی اولیه برای دسترسی به رابط کاربری مدیر از یک دامنه (proxy.example.com) مشاهده میشود. مطمئن شوید که دامنه دارای یک رکورد DNS است که دامنه را به آدرس IPv4 عمومی سرور هدایت می کند.
پس از آن، به احتمال زیاد به گواهی SSL نیاز خواهید داشت تا همه چیز امن باشد. در زیر یک اسکرین شات از پیکربندی اولیه در مورد اینکه چگونه گزینه های SSL می توانند به نظر برسند، آمده است.
شما می توانید گزینه های دیگری مانند “Force SSL” و غیره را به دلخواه تیک بزنید. آنها در تصویر تیک ندارند فقط به این دلیل که خوانندگانی که این آموزش را می خوانند گیج نشوند و فکر نکنند که باید آنها را علامت بزنند.
پس از ذخیره ورودی جدید، می توانید از دامنه ای که تنظیم کرده اید (در این مثال proxy.example.com) به رابط کاربری مدیر دسترسی داشته باشید.
مدیر پروکسی Nginx اکنون آماده است و می توانید هاست های پروکسی خود را اضافه کنید.
اگر network_mode را در فایل Docker Compose در بالا اضافه کردید، باید بتوانید “Forward Hostname / IP” را برای همه کانتینرهای محلی روی 127.0.0.1 تنظیم کنید. به عنوان مثال، یک ظرف Docker وردپرس محلی:
holu@tutorial:~/npm$ docker run -p 8080:80 -d wordpress
holu@tutorial:~/npm$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23bcbfe55c53 jc21/nginx-proxy-manager "/init" 31 minutes ago Up 31 minutes npm-app-1
e9853acea394 wordpress "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 0.0.0.0:8080->80/tcp, :::8080->80/tcp thirsty_greider
می توانید مقصد را روی http://127.0.0.1:8080 تنظیم کنید:
اگر network_mode: ‘host’ را در فایل Docker Compose خود ندارید، باید مقصد را روی آدرس IP عمومی تنظیم کنید، در این مثال 203.0.113.1:8080.
نتیجه
اکنون باید یک Nginx Proxy Manager نصب کنید.