安装.NET Core SDK
其实,如果只是部署的话,仅仅安装运行时即可。但亲测之后,发现在Ubuntu上只安装运行时,在运行网站的时候可能会出现一些问题,或许是默认配置的问题。故,为了简便起见,最好还是安装.NET Core SDK。具体安装步骤见如下网页:在 Ubuntu 上安装 .NET Core SDK 或 .NET Core 运行时
安装Apache2
sudo install apache2
启用代理模块
随着项目逐渐复杂以及部署的需要,可能需要其他的一些代理模块
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo service apache2 restart
编辑Apache2的网站配置
sudo vim /etc/apache2/sites-enabled/000-default.conf
在该配置文件中添加如下代码:
<VirtualHost *:80>
ServerName WebApiDemo.linuxsource.net
ServerAdmin cloudblaze@yeah.net
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog ${APACHE_LOG_DIR}-WebApiDemo-error.log
CustomLog ${APACHE_LOG_DIR}-WebApiDemo-access.log common
</VirtualHost>
为防止录入错误,以截图为准:

配置中的端口5000为后端服务器端口。
在配置完成后,一定要重启apache2服务:
sudo service apache2 restart
启动.NET Core项目
dotnet WebApiDemo.dll
如果能从客户端访问到网站页面,说明部署已经没有问题了。但是,我们当前采用的启动项目的方式存在一点问题:如果项目异常退出了,只能手动再启动一次项目,这在生产环境中是不允许的。故,我们需要创建一个系统服务来监视项目,并在项目异常退出后自动重新启动。
创建服务文件
创建文件/etc/systemd/system/kestrel-WebApiDemo.service,并编辑为:
[Unit]
Description=Example .NET Web API App running on Ubuntu 20.04
[Service]
WorkingDirectory=/var/www/dotnet/WebApiDemo/publish
ExecStart=/usr/local/bin/dotnet /var/www/dotnet/WebApiDemo/publish\WebApiDemo.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
为防止录入错误,以截图为准:

启用服务
sudo systemctl enable kestrel-WebApiDemo.service
410



被折叠的 条评论
为什么被折叠?



