CH-J Server Managerمدیریت سرور از طریق SSH
منو
همهٔ راهنماها و مقاله‌ها ←

مدیریت NGINX بدون از دسترس خارج شدن وب‌سایت

از تنظیمات نسخهٔ پشتیبان بگیرید، آن را با nginx -t آزمایش کنید، با بازخوانی آرام اعمالش کنید و در صورت بروز مشکل به حالت قبل برگردید.

بازخوانی به‌جای راه‌اندازی مجدد

بازخوانی به NGINX می‌گوید تنظیمات را دوباره بخواند. فرایندهای کارگر جدیدی شروع می‌شوند و فرایندهای قبلی فرصت دارند درخواست‌های باز خود را تمام کنند، بنابراین بازدیدکنندگان معمولاً متوجه چیزی نمی‌شوند. اگر تنظیمات جدید قابل اعمال نباشد، NGINX با تنظیمات قبلی به کار ادامه می‌دهد. راه‌اندازی مجدد ابتدا سرویس را متوقف می‌کند و در نتیجه اتصال‌ها قطع می‌شوند؛ همچنین اگر تنظیمات اشتباه باشد، ممکن است سرویس دوباره راه نیفتد.

از فایلی که تغییر می‌دهید نسخهٔ پشتیبان بگیرید

پیش از ویرایش، یک نسخه کنار فایل بسازید و تاریخ را در نام آن بگذارید. نسخه‌ها را در پوشه‌ای نگذارید که NGINX با نویسهٔ عامی مانند conf.d/*.conf یا sites-enabled/* بارگذاری می‌کند، چون آن‌ها را هم بارگذاری خواهد کرد. در Debian و Ubuntu، فایل داخل sites-available را ویرایش کنید؛ مدخل داخل sites-enabled معمولاً فقط پیوندی به آن است.

sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)

آزمایش کنید، سپس بازخوانی کنید

nginx -t نحو تنظیمات و فایل‌هایی را که تنظیمات به آن‌ها اشاره می‌کند، مانند گواهی‌ها، بررسی می‌کند. برای دیدن تنظیمات کامل پس از وارد شدن فایل‌های ارجاع‌شده، از nginx -T استفاده کنید. فقط در صورت موفقیت آزمایش بازخوانی کنید؛ اتصال دستورها با && این شرط را برقرار می‌کند. آزمایش نمی‌تواند مشخص کند که تنظیمات همان کاری را انجام می‌دهد که قصد داشته‌اید، پس بعد از آن وب‌سایت را باز کنید.

sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/

وقتی مشکلی پیش می‌آید

نسخهٔ پشتیبان را برگردانید، دوباره آزمایش کنید و بازخوانی کنید. اگر سرویس متوقف شده باشد، گزارش خطا و ژورنال دلیل آن را نشان می‌دهند. دنبال پیام‌هایی دربارهٔ پورتِ در حال استفاده، گواهی مفقود یا نام سرور تکراری بگردید.

sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.log

مواردی که بازخوانی پوشش نمی‌دهد

اتصال‌های طولانی‌مدت مانند WebSockets تا زمان پایان نزد کارگرهای قبلی می‌مانند، بنابراین کارگرهای قبلی ممکن است مدتی به کار ادامه دهند و حافظهٔ بیشتری مصرف کنند. ارتقای یک بسته ممکن است خودش سرویس را دوباره راه‌اندازی کند. تغییرات بزرگ‌تر، از جمله گواهی‌ها و تغییر مسیرها را ابتدا روی سرور آزمایشی امتحان کنید.

NGINX Manager در CH-J Server Manager

NGINX Manager فایل‌های تنظیمات را در پوشه‌های تحت مدیریت NGINX روی سرورهای Linux ویرایش می‌کند؛ سقف اندازهٔ هر فایل 512 KiB است. هنگام ذخیره، برنامه یک نسخهٔ پشتیبان با پسوند .chj-backup- می‌سازد، nginx -t را اجرا می‌کند و تغییر را فقط پس از موفقیت آزمایش نگه می‌دارد. بازخوانی به تأیید صریح شما نیاز دارد و پیش از شروع، آزمایش دوباره اجرا می‌شود. پیوند نمادین فعال جایگزین نمی‌شود؛ فایل متناظر در sites-available را ویرایش کنید.

مستندات مفصل

NGINX: Controlling nginx ←

NGINX: Beginner's Guide ←

باز کردن قفل بیومتریک و امنیت ←