CentOS 7de .NET Core Web Uygulaması Dağıtma

.NET Core, Microsoft ve sürekli büyüyen .NET topluluğu tarafından sağlanan yeniden tasarlanmış açık kaynaklı bir platformlar arası geliştirme çerçevesidir. .NET Core'un yardımıyla geliştiriciler, her türlü platformda kolayca modern yüksek performanslı uygulamalar oluşturabilir.

Bu makalede, .NET Core'u bir CentOS 7 sunucu örneğine nasıl yükleyeceğinizi ve tam işlevsel bir .NET Core web uygulamasını nasıl dağıtacağınızı göstereceğim.

Ön şartlar

.NET ürün özet akışını sisteme ekleme

Platformlar arası bir geliştirme çerçevesi olarak .NET Core, çeşitli işletim sistemleri için önceden derlenmiş ikili dosyalar sağlar. CentOS 7'de, aşağıdaki komutları sudo kullanıcısı olarak çalıştırarak resmi olarak imzalanmış bir .NET YUM repo oluşturabilirsiniz:

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

YUM kullanarak en son .NET SDK'sını yükleyin

.NET YUM deposunu hazırlayarak, makinenize .NET Core ve diğer bağımlılıklar dahil olmak üzere en son .NET SDK'yı yükleyin:

sudo yum update -y
sudo yum install libunwind libicu -y
sudo yum install dotnet-sdk-2.1.4 -y

Sonucu onaylamak için bir "Hello World" demo .NET Core uygulaması oluşturabilir ve çalıştırabilirsiniz:

cd
dotnet new console -o helloworldApp
cd helloworldApp
dotnet run

dotnet new console -o helloworldAppKomut isimli bir dizin oluşturacaktır helloworldAppana dizininizde ve sonra kullanmak consoleyeni oluşturulan dizinindeki dosyaları uygulaması oluşturmak için şablon.

dotnet runKomutu çalıştırdıktan sonra , Hello World!mesajı konsolda göreceksiniz .

.NET Core web uygulaması oluşturma

Şimdi, .NET .NET türünde bir uygulama oluşturun ve çalıştırın razor. Sadece "Razor Pages" ın sayfa odaklı senaryolar için tasarlanmış yeni bir .NET Core MVC uygulama şablonu olduğunu unutmayın:

cd
dotnet new razor -o myfirstwebapp
cd myfirstwebapp
dotnet run

Yürüterek dotnet runYukarıdaki komutu, sen bir .NET Çekirdek web uygulaması dinleme başlayacaktır: http://localhost:5000.

Web uygulamasının çalışır durumda olduğunu doğrulamak istiyorsanız, GUI'siz bir sunucu örneğinde olmasına rağmen curl http://localhost:5000, web uygulamasının ana sayfasının kaynak kodunu görüntülemek için yeni bir terminal konsolu ve girişi açmaya devam edebilirsiniz .

Daha sonra, .NET Core web uygulamasını kapatmak için CTRL+ tuşuna basabilirsiniz C.

Web uygulamanızı gerçekleştirmek için uygulama dizini içindeki dosyaları düzenlemeniz gerekir. Daha fazla ayrıntıyı resmi .NET belge sayfasında öğrenebilirsiniz .

Tüm geliştirme görevlerini yaptıktan sonra, web uygulamanızı yayınlamak için aşağıdaki komutları kullanabilirsiniz:

cd ~/myfirstwebapp
dotnet publish

Yayımlanan web uygulamasını ~/myfirstwebapp/bin/Debug/netcoreapp2.0dizinde bulabilirsiniz.

(İsteğe bağlı): .NET Core web uygulamanızı çevrimiçi tutmak için Yönetici kurun

İşlem çöküyor. Web uygulamanızı çevrimiçi tutmak için, kilitlenen web uygulaması süreçlerini izlemek ve yeniden başlatmak üzere Süpervizör gibi bir süreç yönetim aracının olması iyi bir fikirdir.

CentOS 7'de Süpervizörü YUM'u kullanarak yükleyebilirsiniz:

sudo yum install supervisor -y

Ardından, web uygulamanız için özel bir Yönetici yapılandırma dosyası ayarlamanız gerekir:

cd /etc/supervisord.d
sudo vi myfirstwebapp.conf

Dosyayı doldurun:

[program:myfirstwebapp]
command=dotnet myfirstwebapp.dll
directory=/home/sudouser/myfirstwebapp/bin/Debug/netcoreapp2.0/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/myfirstwebapp.err.log
stdout_logfile=/var/log/myfirstwebapp.out.log

Kaydet ve çık:

:wq!

Ardından, supervisordoluşturduğumuz yapılandırma dosyasını içerecek şekilde varsayılan yapılandırma dosyasını değiştirmeniz gerekir :

sudo cp /etc/supervisord.conf /etc/supervisord.conf.bak
sudo vi /etc/supervisord.conf

Son satırı bulun:

files = supervisord.d/*.ini

Değiştirin:

files = supervisord.d/*.conf

Kaydet ve çık:

:wq!

Süpervizörü başlatın ve sistem başlangıcında otomatik olarak başlayacak şekilde ayarlayın:

sudo systemctl start supervisord.service
sudo systemctl enable supervisord.service

Yeni Yönetici ayarlarını yükleyin:

sudo supervisorctl reread
sudo supervisorctl update

Şimdi, uygulamanın durumunu göstermek için aşağıdaki komutu kullanabilirsiniz:

sudo supervisorctl status

Çıktı aşağıdaki gibi görünecektir:

myfirstwebapp                    RUNNING   pid 3925, uptime 0:08:45

Ardından, pid'i belirterek uygulamanın işlemini öldürmeyi deneyebilirsiniz 3925:

sudo kill -s 9 3925

Bir süre bekleyin ve durumu tekrar kontrol edin:

sudo supervisorctl status

Bu kez, çıktı uygulamanın çöktüğünü ve otomatik olarak başladığını gösterecektir:

myfirstwebapp                    RUNNING   pid 3925, uptime 0:00:06

(İsteğe bağlı): Nginx'i ters proxy olarak yükleyin

Ziyaretçilerin erişimini kolaylaştırmak için, web trafiğini bağlantı noktasına geçirmek için Nginx'i ters proxy olarak yükleyebilirsiniz 5000.

YUM kullanarak Nginx'i yükleyin:

sudo yum install nginx -y

Varsayılan Nginx yapılandırma dosyasını aşağıdaki gibi düzenleyin:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo vi /etc/nginx/nginx.conf

Segment içinde aşağıdaki segmenti bulun http {}:

location / {
}

Diş telleri arasına aşağıda gösterildiği gibi altı satır ters proxy ayarı ekleyin:

location / {
proxy_pass http://127.0.0.1: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;
}

Kaydet ve çık:

:wq!

Nginx hizmetini başlatın ve ardından sistem başlangıcında başlayacak şekilde ayarlayın:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Güvenlik duvarı kurallarını ayarlama

Ziyaretçi bağlantı noktalarında .NET Çekirdek web uygulamasına erişmeden önce 80ve 443aşağıda gösterildiği gibi, güvenlik duvarı kurallarını değiştirmek gerekir:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

Bu uygulama kurulumunu tamamlar. Artık adresinden .NET Core web uygulamanıza göz atmaya hazırsınız http://203.0.113.1.



Leave a Comment

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?