nginx یک وبسرور رویدادمحور است: فرایند master پیکربندی را میخواند و workerها درخواست را جواب میدهند. برای اولین سایت استاتیک کافی است بسته را نصب کنید، در بلوک server یک location / با root بگذارید، فایل HTML را در همان مسیر قرار دهید و با reload تنظیمات را اعمال کنید.
آموزش nginx از صفر؛ اولین سایت استاتیک روی لینوکس
پیشنیاز: دسترسی sudo، پورت ۸۰ آزاد (آپاچی یا سرویس دیگر روی همان پورت نباشد)، و ترجیحاً تست اول روی localhost یا LAN قبل از باز کردن فایروال اینترنت. این آموزش الگوی Beginner's Guide رسمی nginx را برای محتوای استاتیک دنبال میکند؛ نصب بسته را با apt/dnf جداگانه انجام میدهید.
- روی اوبونتو/دبیان: sudo apt update && sudo apt install nginx سپس sudo systemctl enable --now nginx.
- دود تست: در مرورگر یا با curl -I http://127.0.0.1/ پاسخ ۲۰۰ را ببینید (صفحهٔ پیشفرض توزیع).
- طبق راهنمای رسمی، داخل بلوک server چیزی شبیه این بگذارید: location / { root /data/www; } و برای تصاویر location /images/ { root /data; } تا URI با مسیر دیسک درست ترکیب شود.
- فایل index.html را زیر ریشهٔ انتخابی بسازید و مجوز خواندن برای کاربر سرویس (معمولاً www-data) بدهید.
- اعتبارسنجی و اعمال: sudo nginx -t و بعد sudo systemctl reload nginx — یا طبق خود باینری: nginx -s reload.
سیگنالهای رسمی: stop خاموشی سریع، quit خاموشی با اتمام درخواستهای جاری، reload بارگذاری دوبارهٔ کانفیگ، reopen بازکردن مجدد لاگ. بعد از ویرایش فایل، تا وقتی reload/restart نزنید تغییر زنده نمیشود؛ اگر syntax خراب باشد master به کانفیگ قبلی برمیگردد.
۴۰۴، مجوز و ایمنی اولراه
۴۰۴ رایج یعنی ترکیب location و root به فایل واقعی نمیرسد؛ مسیر را روی دیسک با ls چک کنید. خطای permission معمولاً از مالکیت پوشه یا SELinux/AppArmor است نه از «خراب بودن nginx». سایت عمومی را بدون TLS روی اینترنت رها نکنید؛ اول روی شبکهٔ محلی پایدار شوید.
اگر بعد از reload هنوز صفحهٔ قدیمی میبینید، کش مرورگر را خالی کنید و با curl هدر ببینید. در نظرات خروجی nginx -t (بدون دامنهٔ خصوصی حساس) را بگذارید تا مسیر root را با هم مرور کنیم. مرجع: Beginner's Guide | nginx. ریشهٔ پیشفرض توزیع را نگه میدارید یا مثل راهنما /data/www میسازید؟
هدف اولین روز با nginx این است که یک فایل HTML را از روی دیسک با HTTP بدهید، نه اینکه همان اول reverse proxy و FastCGI را قاطی کنید. Beginner's Guide رسمی دقیقاً از static content شروع میکند: location با root، ترکیب URI و مسیر، بعداً proxy. همین ترتیب جلوی گیجشدن ۴۰۴ را میگیرد.
روی اوبونتو ریشهٔ پیشفرض اغلب /var/www/html است؛ الگوی /data/www راهنما فقط یک مثال آموزشی است. هر کدام را انتخاب کنید، مهم این است که location و root با فایل واقعی یکی باشند. location طولانیتر برای یک پیشوند برنده میشود؛ برای همین /images/ جدا از / معنی دارد.
master کانفیگ را ارزیابی میکند و workerها جواب میدهند. reload کارگرهای جدید میآورد و قدیمیها درخواست جاری را تمام میکنند؛ اگر syntax غلط باشد، همان کانفیگ قبلی میماند. عادت nginx -t قبل از reload، قطعی سایت را کم میکند.
پورت ۸۰ اشغالشده معمولاً از apache2 یا یک کانتینر قبلی است؛ قبل از نصب، ss -tlnp را نگاه کنید. مجوز پوشه را طوری بدهید که کاربر nginx بخواند، ولی فایلهای .env و کلید را داخل root وب نگذارید.
برای دسترسی از LAN، فایروال را آگاهانه باز کنید؛ برای اینترنت عمومی، TLS و هدرهای امنیتی قدم بعدیاند و در این آموزش اول نیستد. لاگ error را وقتی ۵۰۰ یا permission میبینید بخوانید، نه اینکه فقط سرویس را reinstall کنید.
ثبت کوتاه مسیر root و نام server_name در مستند تیم، بعداً وقتی چند vhost آمد گیجی را کم میکند. مرجع nginx.org ساختار server/location را با مثال همان صفحهٔ Beginner توضیح میدهد.
اگر صفحهٔ پیشفرض توزیع ماند، مطمئن شوید سایت شما enable شده و reload خورده است؛ در برخی توزیعها فایل جدا در sites-enabled باید لینک شود.