NGINX
نصب NGINX روی Ubuntu
این آموزش رو دنبال کنید.
ثبت دامنهی جدید
- به nic.ir یا هر DNS Provider دیگهای برید و یه دامنهی جدید بخرید.
- به Cloudflare Dashboard برید و یه Site جدید بسازید.
- Nameserverهای
دامنه رو تو Cloudflare مشخص کنید.
معمولاًkyrie.ns.cloudflare.comوlaylah.ns.cloudflare.comهستند. - تو بخش Cloudflare DNS یه رکورد
Aبسازید. - توی Server یه فایل جدید تو
/etc/nginx/sites-available/بسازید. اسم فایل باید همنام با دامنه باشه. - هر Configـی که لازمه رو تو فایل بالا بذارید.
- یه Soft Link تو
/etc/nginx/sites-enabled/بسازید:ln -s /etc/nginx/sites-available/DOMAIN /etc/nginx/sites-enabled/DOMAIN - از طریق مرورگر به آدرس دامنه برید و چک کنید که صفحه پیشفرض NGINX رو نشون میده.
همچنین میتونید به nic.ir برید و بررسی کنید که Status ازReservedبهRegisteredتغییر کرده یا نه.
ممکنه زمانبر باشه، صبر کنید. - برای راهاندازی HTTPS، از این آموزش استفاده کنید.
- فایل
DOMAIN.ssl.confرو تو/etc/nginx/common-configs/بسازید. - کانفیگ SSL رو تو این فایل بذارید:
ssl_certificate /etc/letsencrypt/live/DOMAIN/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/DOMAIN/privkey.pem;
- NGINX
رو با این دستور Reload کنید.
systemctl reload nginx
دریافت HTTPS Certificate رایگان
به سایت Certbot برید و Web Server و System خودتون رو انتخاب کنید. بعدش Certbot دستورالعملهایی رو برای ساخت Certificate رایگان نشونتون میده.
فعالکردن Gzip
DigitalOcean یه مقاله خیلی خوب داره که این موضوع رو کامل توضیح میده.
Restart در مقابل Reload
موقع تغییر Config File، دو راه برای اعمال تغییرات وجود داره:
systemctl restart nginxsystemctl reload nginx
راه اول کاملاً NGINX Service رو متوقف میکنه و بعدش دوباره شروع میکنه. این باعث میشه کلاینتهای متصل، قطع بشن. همچنین اگه فرایند ناموفق باشه، Service متوقف میمونه.
از طرف دیگه، راه دوم سعی میکنه Configهای ویرایششده رو بدون متوقفکردن Service اعمال کنه، پس کلاینتها قطع نمیشن. اگه فرایند ناموفق باشه، Service به کارش ادامه میده و از Configهای قدیمی استفاده میکنه.
اگه reload ناموفق باشه، هیچ خطایی تو Terminal نمایش نمیده.
قبل از Reloadکردنِ سرویس، درستیِ Config رو با دستور nginx -t بررسی کنید.
بررسی آخرین خط فایل Log
tail -1 /var/log/nginx/access.log
tail -1 /var/log/nginx/error.log
اولویت Location Block
اگه بیشتر از یه دونه Location Block وجود داشته باشه که URL رو بتونه هندل کنه، اولویت انتخاب به این شکله:
- Exact Match (
location = /some/path) - Preferential Prefix Match (
location ^~ /some/path) - Regex Match (
location ~* /some/.*/path) - Prefix Match (
location /some/path)