![nginx](/_next/static/media/ngnix.0d5c7592.png)
استقرار Nginx
(Docker Apps)Nginx یک HTTP server و reverse proxy متن باز و بسیار قدرتمند است که شما میتوانید از آن بهمنظور کنترل و مدیریت ترافیک ورودی برنامههایتان استفاده کنید.
در صورتی که تمایلی به خواندن آموزش متنی ندارید میتوانید ویدیوی آموزشی زیر را مشاهده کنید.
برای راهاندازی Nginx در برنامههای Docker لیارا کافیست یک پروژهی جدید در مسیر دلخواه خود ایجاد کرده و دو فایل با نامهای Dockerfile و nginx.conf را با محتوای مربوطه در این پروژه قرار دهید.
به عنوان مثال، در ادامه قطعه کدهای مربوطه برای اعمال reverse proxy بر روی یک برنامه، آمده است:
محتوای Dockerfile:
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
محتوای nginx.conf:
user nginx;
worker_processes auto;
pid /tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$request_method $status $http_x_forwarded_for "$request_uri" "$http_referer" "$http_user_agent"';
server_tokens off;
sendfile on;
keepalive_timeout 65;
gzip on;
access_log /dev/stdout;
error_log stderr;
server {
resolver 127.0.0.11 ipv6=off valid=5s;
listen 80;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set $backend "http://app-name:port";
proxy_pass $backend;
}
}
}
درنهایت با اجرای دستور liara deploy --platform=docker --port=80 در مسیر اصلی پروژه، Nginx بر روی برنامهی Docker تهیه شده مستقر خواهد شد.
توضیحات و نکات تکمیلی
تنظیم مسیر tmp بهعنوان مقصدی برای ذخیرهی فایلهای موقتی
با مشاهدهی فایل nginx.conf متوجه خواهید که در موارد مختلف از مسیر tmp بهعنوان مقصدی برای ذخیرهی فایلهای موقتی استفاده شده است. البته شما میتوانید مسیر دیگری را برای اینکار انتخاب کنید؛ چرا که فایلسیستم برنامههای داکر در لیارا، به صورت پیشفرض، writable است، قطعه کد زیر، نمونهای از تنظیم مسیر ذخیرهسازی، به پوشه tmp است:
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
تنظیم resolver
با توجه به احتمال تغییر IP برنامه در لیارا (در زیر ساخت قدیمی)، تنظیم resolver در فایل nginx.conf این امکان را بهوجود میآورد تا هر بار IP جدید برنامه دریافت شده و مشکلی در هدایت ترافیک بهوجود نیاید.
server {
resolver 127.0.0.11 ipv6=off valid=5s;
listen 80;
location / {
...
set $backend "http://app-name:port";
proxy_pass $backend;
}
}