ASP.NET Core程序发布到Linux生产环境详解
这篇文章主要为大家详细介绍了ASP.NET Core程序发布到Linux生产环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
在这篇文章里我们将介绍如何在 Ubuntu 14.04 Server上部署ASP.NET Core应用程序。我们将把ASP.NET Core应用程序放到一个反向代理服务器的后面,由代理服务器把请求转交给我们的Kestrel服务器。除此之外,我们还将保证我们的web应用程序作为一个守护进程来进行启动。我们需要配置一个进程管理工具来帮助我们在程序崩溃时恢复程序,以保证高可用性。
章节:
准备
复制你的应用程序
配置一个反向代理服务器
监控我们的应用程序
启动我们的应用程序
观察日志
使我们的应用程序安全化
准备工作
1、使用一个具体有sudo权限的标准帐号访问Ubuntu 14.04 Server;
2、ASP.NET Core应用程序。
复制你的应用程序
运行dotnet publish把你的ASP.NET Core应用程序打包成一个自包含(Self-Contained)的目录(publish目录,这个目录下的程序将被上传到服务器上并运行)。什么是自包含(Self-Contained)程序,请参考我的这篇文章:
.NET Core应用类型(Portable apps & Self-contained apps) 。在操作之前,通过FTP工具(WinSCP等)把publish目录下的程序全部上传到服务器指定的目录下。接下来我们运行我们的程序,具体怎么运行程序请参考这篇文章:使用.NET Core 1.0创建一个Self-Contained控制台应用。
配置一个反向代理服务器
对于动态web应用来说,反向代理是一个非常常用的设置。反向代理会终止当前的请求并把请求转交给后端的ASP.NET Core应用程序。
为什么要使用反向代理服务器
Kestrel作为一个web服务器,在处理动态内容方面是非常优秀的,但它并不像那些成熟的web服务器一样功能完备,这些服务器包括: IIS, Apache or Nginx。反向代理服务器可以把一些工作从Http服务器上卸掉,这些工作包括:静态内容处理、缓存、压缩以及SSL等。反向代理服务器可以部署在一个专用的服务器上或者和Http服务器在同一个集群里。本例中我们将使用Nginx作为反向代理服务器并和Http服务器部署在同一个机器上。
安装代理服务器
sudo apt-get install nginx
安装Nginx
sudo service nginx start
启动Nginx
配置Nginx
编辑文件:/etc/nginx/sites-available/default为如下:
server { listen 80; 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; } }
监听在80端口,Http的默认端口;代理使用HTTP版本为:HTTP 1.1;把原始请求转交给:http://localhost:5000。
上述配置完成后使用如下命令来验证配置文件语法是否正确:
sudo nginx -t
如果配置语法没有问题,则重启Nginx以使配置生效:
sudo nginx -s reload
监控我们的web应用
Nginx将转发请求给你的Kestrel服务器,但Kestrel并不像Windows上的IIS,它并不管理你的Kestrel进程,在这篇文章中我们将使用supervisor来启动我们的应用程序,当系统启动的时候或者当进程崩溃时进行自我恢复。
安装supervisor:
sudo apt-get install supervisor
配置supervisor:
/etc/supervisor/conf.d/hellomvc.conf (新增的一个文件)
[program:hellomvc] command=/usr/bin/dotnet /var/aspnetcore/HelloMVC/HelloMVC.dll directory=/var/aspnetcore/HelloMVC/ autostart=true autorestart=true stderr_logfile=/var/log/hellomvc.err.log stdout_logfile=/var/log/hellomvc.out.log environment=ASPNETCOREENVIRONMENT=Production user=www-data stopsignal=INT
重启supervisord
sudo service supervisor stop sudo service supervisor start
启动我们的web应用程序
在这个案例中因为我们使用了supervisor来管理我们的应用,应用将会被supervisor自动开启。当操作系统启动的时候,supervisor作为守护进程使用一个System V的初始化脚本来启动,supervisor启动后紧接着会启动你的应用程序。
观察日志
supervisord日志
sudo tail -f /var/log/supervisor/supervisord.log
我们自己应用的日志
tail -f /var/log/hellomvc.out.log
原文翻译:Publish to a Linux Production Environment
作者:Sourabh Shirhatti
Atas ialah kandungan terperinci ASP.NET Core程序发布到Linux生产环境详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

Sebab -sebab pemasangan sambungan kod VS mungkin: ketidakstabilan rangkaian, kebenaran yang tidak mencukupi, isu keserasian sistem, versi kod VS terlalu lama, perisian antivirus atau gangguan firewall. Dengan menyemak sambungan rangkaian, keizinan, fail log, mengemas kini kod VS, melumpuhkan perisian keselamatan, dan memulakan semula kod VS atau komputer, anda boleh menyelesaikan masalah dan menyelesaikan masalah secara beransur -ansur.

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

Lima komponen asas sistem Linux adalah: 1. Kernel, 2. Perpustakaan Sistem, 3. Utiliti Sistem, 4. Antara Muka Pengguna Grafik, 5. Aplikasi. Kernel menguruskan sumber perkakasan, Perpustakaan Sistem menyediakan fungsi yang telah dikompilasi, utiliti sistem digunakan untuk pengurusan sistem, GUI menyediakan interaksi visual, dan aplikasi menggunakan komponen ini untuk melaksanakan fungsi.

Visual Studio Code (VSCode) adalah editor cross-platform, sumber terbuka dan editor kod percuma yang dibangunkan oleh Microsoft. Ia terkenal dengan ringan, skalabilitas dan sokongan untuk pelbagai bahasa pengaturcaraan. Untuk memasang VSCode, sila lawati laman web rasmi untuk memuat turun dan jalankan pemasang. Apabila menggunakan VSCode, anda boleh membuat projek baru, edit kod, kod debug, menavigasi projek, mengembangkan VSCode, dan menguruskan tetapan. VSCode tersedia untuk Windows, MacOS, dan Linux, menyokong pelbagai bahasa pengaturcaraan dan menyediakan pelbagai sambungan melalui pasaran. Kelebihannya termasuk ringan, berskala, sokongan bahasa yang luas, ciri dan versi yang kaya

VS Kod boleh didapati di Mac. Ia mempunyai sambungan yang kuat, integrasi git, terminal dan debugger, dan juga menawarkan banyak pilihan persediaan. Walau bagaimanapun, untuk projek yang sangat besar atau pembangunan yang sangat profesional, kod VS mungkin mempunyai prestasi atau batasan fungsi.

VS Kod adalah nama penuh Visual Studio Code, yang merupakan editor kod dan persekitaran pembangunan yang dibangunkan oleh Microsoft. Ia menyokong pelbagai bahasa pengaturcaraan dan menyediakan penonjolan sintaks, penyiapan automatik kod, coretan kod dan arahan pintar untuk meningkatkan kecekapan pembangunan. Melalui ekosistem lanjutan yang kaya, pengguna boleh menambah sambungan kepada keperluan dan bahasa tertentu, seperti debuggers, alat pemformatan kod, dan integrasi Git. VS Kod juga termasuk debugger intuitif yang membantu dengan cepat mencari dan menyelesaikan pepijat dalam kod anda.

Untuk melihat alamat repositori Git, lakukan langkah -langkah berikut: 1. Buka baris arahan dan navigasi ke direktori repositori; 2. Jalankan perintah "Git Remote -V"; 3. Lihat nama repositori dalam output dan alamat yang sepadan.
