جدول محتوایی

اجرای برنامه های ASP.NET Core روی CentOS 8

گاهی اوقات مجبورمی شویم به هر دلیلی برنامه های ASP.NET را روی CentOS 8 توسعه دهیم.

در این مقاله، قصد داریم هر آنچه را که در مورد توسعه برنامه هسته asp.net بر روی یک سرور لینوکس با توزیع CentOS 8 نیاز دارید، به اشتراک بگذاریم.

اول از همه، اگر از Windows یا Mac OS استفاده می‌کنید و می‌خواهید یک سیستم‌عامل لینوکس داشته باشید، می‌توانید از پلن های سرور مجازی لینوکس ایرانیکا سرور استفاده کنید.

asp.net روی Centos 8


برای نصب هر پکیجی در CentOS، باید از این دستور استفاده کنید.

sudo dnf install PackageName

برای اجرای برنامه ASP.NET روی centos 8 باید چند پکیج را نصب کنیم. این پکیج ها مورد نیاز هستند و باید آنها را نصب کنیم.

پیش نیازها:

  1. SDK
  2. AspNetCoreRuntime

یک پنجره ترمینال را باز کنید و دستورات زیر را برای نصب آنها اجرا کنید:

sudo dnf install dotnet-sdk-5.0
sudo dnf install aspnetcore-runtime-5.0

نکته: اگر از CentOS 7 استفاده میکنید، بجای dnf از yum استفاده کنید.


 

نصب Nginx

اولین مرحله از اجرای برنامه های ASP.NET روی centos نصب وب سرور است. ما از Nginx به عنوان یک وب سرور استفاده می کنیم. اما اگر نمی خواهید از Nginx استفاده کنید می توانید Apache را انتخاب کنید.

برای نصب nginx از دستور زیر استفاده کنید:

sudo dnf install nginx

پس از اتمام نصب، باید Nginx را فعال و راه اندازی کنید. برای فعال کردن و اجرای Nginx (یا هر سرویس دیگری) می توانید از دستور زیر استفاده کنید:

sudo systemctl enable nginx
sudo systemctm start nginx

با این کار Nginx را فعال و راه اندازی می کنیم. اما اگر می خواهید از اجرا شدن آن مطمئن شوید، می توانید با استفاده از دستور زیر وضعیت آن را بررسی کنید.

sudo systemctl status nginx

در نظر داشته باشید که هر زمان که بخواهید وضعیت هر سرویسی را بررسی کنید می توانید از دستور بالا استفاده کنید.

اگر نتیجه ای مانند تصویر زیر دریافت کردید، به این معنی است که Nginx کار می کند و آماده استفاده است.

asp.net روی Centos 8

 

در مرحله بعد باید یک سرویس جدید برای اجرای برنامه خود ایجاد کنیم.


 

پیکربندی Nginx

مرحله بعدی پیکربندی Nginx برای ارسال درخواست های HTTP به برنامه ASP.NET ما است. برای انجام این کار باید پیکربندی پیش فرض آن را که در /etc/nginx/nginx.conf قرار دارد تغییر دهیم.

دستور زیر را اجرا کنید تا فایل باز شود و مانند زیر آن را تغییر دهید:

sudo nano /etc/nginx/nginx.conf

فایل که باز شد مجتوای زیر را در آن جایگذاری کنید:

location / {
proxy_pass http://0.0.0.0:5000;
proxy_redirect off;
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;
}

حال اگر یک مرورگر را باز کنید و http:localhost را وارد کنید، باید صفحه پیش فرض Nginx را ببینید.


 

ایجاد یک سرویس جدید

تا به حال بسته های مورد نیاز را نصب کرده و Nginx را پیکربندی کرده ایم، اکنون باید یک سرویس جدید برای اجرای برنامه خود ایجاد کنیم.

برای ایجاد یک Service File جدید، از دستور زیر استفاده کنید:

sudo nano /etc/systemd/system/myapp.service

نمونه زیر را به آن اضافه کنید، سپس آن را با ctrl+x ذخیره کنید.

[Unit]
Description = Example .NET Web API App running on CentOs 8

[Service]
WorkingDirectory = / var / www / myapp
ExecStart = / usr / bin / dotnet /var/www/myapp/myapp.dll
Restart = always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec = 10
KillSignal = SIGINT
SyslogIdentifier = dotnet-example
User = www-data
Environment = ASPNETCORE_ENVIRONMENT = Production
Environment = DOTNET_PRINT_TELEMETRY_MESSAGE = false

[Install]
WantedBy = multi-user.target

سپس فایل پروژه ای که ساختیم را در var/www/myapp کپی کنید.

توجه داشته باشید که کاربر www-data باید وجود داشته باشد، در غیر این صورت سرویس شما قابل اجرا نخواهد بود.

اگر تمام مراحل بالا را انجام دادید، اکنون باید سرویس خود را برای اجرای برنامه فعال و راه اندازی کنیم:

sudo systemctl enable myapp.service
sudo systemctl start myapp.service

پس از اجرای دستورات بالا، دستور sudo systemctl satatus myapp.service را وارد کنید تا مطمئن شوید سرویس در حال اجراست. اگر running سبز رنگ را مشاهده کردید، یعنی سرویس کار میکند. حالا می توانید با وارد کردن http:localhost:5000 به آن دسترسی پیدا کنید.


 

هدایت ترافیک به 5000

اگر می خواهید به پروژه خود در پورت 80 دسترسی داشته باشید و همچنین از رایانه های دیگر به آن دسترسی داشته باشید. باید خط زیر را در فایل appSetting.json خود اضافه کنید:

"Urls": "http://0.0.0.0:5000",

به این ترتیب، فقط باید آدرس IP سرور را در مرورگر وارد کنیم. Nginx به طور خودکار به پورت 5000 تغییر مسیر می دهد.


 

به همین راحتی توانستیم برنامه های asp.net core را روی CentOS 8 اجراکنیم. امیدواریم برایتان مفید بوده باشد.

 

48رای - امتیاز 1.1 ممنون از امتیازی که دادید..!

دسته بندی شده در: