برگه خلاصه NGINX برای توسعهدهندگان ASP.NET Core
نویسنده: وحید نصیری
تاریخ: ۱۴۰۴/۰۴/۱۲ ۱۰:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
sudo systemctl start nginx: سرویس NGINX را اجرا میکند.sudo systemctl stop nginx: سرویس NGINX را متوقف میکند.sudo systemctl restart nginx: سرویس NGINX را کاملاً متوقف و دوباره اجرا میکند (باعث قطعی لحظهای میشود).sudo systemctl reload nginx: تنظیمات جدید را بدون قطعی و با حفظ ارتباطات فعال، بارگذاری میکند.sudo systemctl enable nginx: سرویس NGINX را برای اجرای خودکار پس از بوت شدن سرور، فعال میکند.sudo systemctl status nginx: وضعیت فعلی سرویس NGINX (فعال، متوقف، خطا) را نمایش میدهد.sudo systemctl status my-app.service: وضعیت سرویس اپلیکیشن ASP.NET Core شما را نمایش میدهد.sudo nginx -t: صحت نوشتاری (Syntax) تمام فایلهای کانفیگ NGINX را قبل از اعمال، تست میکند. (دستور حیاتی!)sudo ln -s /path/available /path/enabled: یک لینک نمادین (شورتکات) برای فعالسازی یک سایت از sites-available به sites-enabled ایجاد میکند.sudo rm /path/enabled/site.conf: لینک نمادین یک سایت را برای غیرفعال کردن آن حذف میکند (فایل اصلی امن باقی میماند).sudo chown -R www-data:www-data /path/app: مالکیت یک پوشه و تمام محتویات آن را به کاربر www-data میدهد تا اپلیکیشن اجازه اجرا داشته باشد.location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}sudo certbot --nginx -d your-domain.com
root /var/www/app/wwwroot;
location / {
try_files $uri @proxy;
}
location @proxy {
proxy_pass http://backend;
# ... proxy headers
}upstream my_backend {
least_conn; # یا ip_hash
server localhost:5000;
server localhost:5001;
}
# ... در location مربوطه
proxy_pass http://my_backend;# در nginx.conf
limit_req_zone $binary_remote_addr zone=my_limit:10m rate=10r/m;
# در location (مثلا صفحه لاگین)
location /login { limit_req zone=my_limit burst=5 nodelay; }# در nginx.conf server_tokens off; # در location پراکسی proxy_hide_header X-Powered-By;
location ~* \.(db|git|log|sln|cs)$ { return 404; }
location ~ /\. { return 404; }# در server یا http client_max_body_size 100M; # در server یا location proxy_read_timeout 180s;
client_max_body_size) و زمان انتظار برای پاسخ از Backend (proxy_read_timeout) را افزایش میدهد.sudo systemctl status my-app.service: وضعیت کلی سرویس اپلیکیشن شما را نشان میدهد (آیا در حال اجراست؟ آیا در حلقه ریاستارت گیر کرده؟).sudo journalctl -u my-app.service -f -n 100: دستور طلایی! ۱۰۰ خط آخر لاگهای اپلیکیشن شما را نشان داده و سپس به صورت زنده هر لاگ جدیدی را نمایش میدهد.sudo journalctl -u my-app.service --since today: تمام لاگهای مربوط به اپلیکیشن شما از ابتدای امروز را نمایش میدهد.tail -f /var/log/nginx/error.log: لاگ خطاهای خود NGINX را به صورت زنده نمایش میدهد (مفید برای خطاهای 502 و ...).docker-compose up -d --build: کانتینرها را بر اساس فایل docker-compose.yml در پسزمینه ساخته و اجرا میکند.docker-compose down: کانتینرهای تعریف شده در docker-compose.yml را متوقف و حذف میکند.# نام سرویس اپلیکیشن از فایل docker-compose.yml proxy_pass http://my-aspnet-service:8080;
proxy_pass به جای localhost به نام سرویس اپلیکیشن اشاره میکند.