Files
my-docs/nginx/dotnet.md
Mahdiyar Abdollahi a82b38a6d1 Update dotnet.md
2023-10-16 08:39:20 +03:30

4.3 KiB
Raw Blame History

آموزشDeploy Dotnet روی لینوکس

این آموزش فقط روی دات نت ۷ و اوبونتو ۲۲.۰۴ تست شده است

خروجی گرفتن

نخست باید از پروژه خود خروجی بگیریم پس دستور زیر را اجرا کنید
dotnet publish
مکان خروجی فایل بعد از اتمام دستور به شما نشان داده خواهد شد معمولا خروجی پروژه در مکان زیر قرار خواهد گرفت

bin/Debug/net7.0/publish

نصب Ngnix

اِنجین‌اِکس (به انگلیسی: nginx) یک کارساز وب با حجم پایین و کارایی بالا است که تحت مجوز بی‌اس‌دی منتشر می‌شود. این کارساز وب در یونیکس، گنو/لینوکس، بی‌اس‌دی، مک او اس و ویندوز اجرا می‌شود. بر طبق گفتهٔ نت‌کرافت، در حال حاضر ۱۲٫۰۷٪ از دامنه‌های اینترنت از این کارساز استفاده می‌کنند.

برای نصب Ngnix از طریق apt از دستور زیر استفاده کنید
sudo apt install ngnix
سپس با استفاده از دستور sudo ufw disable فایروال را غیرفعال کنید اگر با این دستور با خطا مواجه شد یعنی شما فایروال ندارد پس از روی این بخش رد شوید

اگر نصب موفقیت آمیز بوده باشد با تایپ کردن localhost در مرورگر باید با پیام Welcome to Ngnix مواجه شوید

تنظیمات Ngnix

با دستور زیر یک پوشه برای سایت خود می سازیم
sudo mkdir /var/www/app1 
محتویات پوشه publish را به پوشه ای که ساختیم کپی کنید sudo cp yourprojectFolder/bin/Debug/net7.0/publish /var/www/app1

سپس با دستور زیر وارد کانفیگ Ngnix می شویم
sudo vim /etc/nginx/sites-available/default
و محتویات داخل فایل را با زیر عوض می کنیم
server {
    listen        80;
    server_name   example.com *.example.com;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}
نکته: به جای example.com آدرس سایت خود را بگذارید

با دستور زیر محتویات فایلی را که تغییر دادیم را بررسی کنید
sudo ngnix -t

اگر با خطا مواجه نشدید دستور زیر را فراخوانی کنید تا تنظیمات Ngnix دوباره بارگذاری شود
sudo ngnix -s reload

افزودن سایت به عنوان سرویس

با دستور زیر فایلی برای سرویس خود درست می کنیم
sudo vim /etc/systemd/system/app1.service

کد زیر در فایل بالا کپی کنید
[Unit] 
Description= dotnet webapp
[Service] 
WorkingDirectory=/var/www/app1
ExecStart=/usr/bin/dotnet /var/www/app/projectname.dll 
Restart=always
RestartSec=10
SyslogIdentifier=projectname
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target
نکته: به جای projectname اسم پروژه خود را بگذارید

با دستور های زیر سایت را فعال کنید و از وضعیت آن مطلع شوید
sudo systemctl enable app1.service
sudo systemctl start app1.service
sudo systemctl status app1.service