好久没写博客了,今天分享一下 ASP.NET Core MVC
发布部署 elementaryos-5.0-stable
(号称最美 Linux
) 服务器,并配置 Nginx
实现域名访问。
Demo
测试环境:
- 操作系统:
Windows 10 V1903
版本; - 虚拟机:
Hyper-V
; - 虚拟机配置系统:elementaryos-5.0-stable.20181016;
步骤1:【准备工作】
准备一个虚拟机(比如 Windows
自带的 Hyper-V
),Linux
镜像文件(此处使用 elementaryos-5.0
,好称最美 Linux
),配置好 Linux
服务器;配置细节,自行百度,必应等;
步骤2:【安装 .NET Core SDK】
参考官网:https://dotnet.microsoft.com/download/linux-package-manager/ubuntu18-04/sdk-current;因为elementaryos是ubuntu的一个分支,所以此处选择ubuntu18.04-64;
2.1【注册 Microsoft 密钥和 feed】
在安装 .NET
之前,您需要注册 Microsoft
密钥、注册产品存储库和安装所需的依赖项。每台机器只需要完成一次。
打开终端并运行以下命令:
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
2.2【安装 .NET Core SDK】
更新可用于安装的产品,然后安装 .NET Core SDK
。
在您的终端中,运行以下命令:
sudo add-apt-repository universe
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
注意:以上步骤执行完毕,可以在终端输入如下命令查看
.net core sdk
版本;(此处安装的是2.2.300 版本)。
查看 dotnet
信息:
dotnet --info
步骤3:【更新 Linux 服务器】
在终端输入命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo reboot
步骤4:【创建 ASP.NET Core MVC 项目】
在终端输入命令:
dotnet new mvc -lang C# -o /home/chait/Demo/dotnet/
cd ./home/chait/Demo/dotnet
dotnet restore
dotnet run
此时可以在浏览器中输入:http://localhost:5000
或 https://localhost:5001
查看编译好的mvc
网站,如下如所示:
或者也可以在终端使用 wget
查看网站,命令如下:
wget http://localhost:5000
运行可看到如下信息如下:
步骤5:【安装 Nginx】
在配置好的(VM 虚拟) Linux
服务器终端执行如下命令:
sudo apt-get install nginx
查看 nginx
是否安装成功,浏览器输入:localhost
可以查看到 Welcome to nginx!
步骤6:【配置 Nginx 反向代理】
实现 ASP.NET Core MVC
网站访问;
6.1 使用 vi/vim
配置 nginx
的服务配置:
--sudo vi /etc/nginx/sites-available/default
sudo vim /etc/nginx/sites-available/default
将 Nginx
的 default.conf
配置替换成如下配置:
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;
}
}
6.2 测试配置:
sudo nginx -t
6.3 重新加载 nginx 配置:
sudo nginx -s reload
此时在浏览器中输入IP地址就可以访问网站了,如果还想支持域名访问发布的 ASP.NET Core MVC
网站,可以在 nginx.conf
配置中添加 server_name
,完整如下所示:
server {
listen 80;
server_name www.your_domain_name.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;
}
}
注意:www.your_domain_name.com
即为你的域名,修改配置后,重新加载nginx.conf
配置:
sudo nginx -s reload
此时就可以通过域名访问发布的网站了;