安装DotNet SDK 官方文档
添加镜像订阅
rpm --import https://packages.microsoft.com/keys/microsoft.asc
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'
安装SDK
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1.3
查看安装
dotnet --version
上传站点 官方文档
psftp [主机地址]
put D:\website.7z
解压文件,使用的是 p7zip
7za x website.7z
创建服务
vi /etc/systemd/system/website.service
[Unit]
Description=Web API Application running on CentOS
[Service]
WorkingDirectory=/home/website
ExecStart=/usr/bin/dotnet /home/website/website.dll
Restart=always
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=website
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
启动服务
systemctl start website
systemctl enable website
测试站点
curl localhost:8010
安装Nginx
yum install -y nginx
启动,测试
systemctl start nginx
nginx -v
修改配置文件
cd /etc/nginx
vi /etc/nginx/conf.d/vhost_website.conf
server {
server_name [test.xxx.com];
location / {
proxy_pass http://localhost:8010;
}
}
Https配置[可选]
编辑nginx.conf
vi /etc/nginx/nginx.conf
server {
listen 443 ssl http2 default_server;
listen[::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl on;
ssl_certificate /etc/pki/nginx/certificate.pem;
ssl_certificate_key /etc/pki/nginx/certificate.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
编辑vhost_website.conf
vi /etc/nginx/conf.d/vhost_website.conf
server {
listen 443 ssl http2;
listen[::]:443 ssl http2;
server_name [test.xxx.com];
location / {
proxy_pass http://localhost:8010;
}
}
测试
重新启动nginx
systemctl restart nginx
浏览器打开
http://[test.xxx.com]
其它异常
1.Unable to bind to http://localhost:5000 on the IPv6 loopback interface: ‘Error -99 EADDRNOTAVAIL address not available’.
添加hosting.json
{
"server.urls": "http://*:8010"
}
修改Program
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("hosting.json", optional: true)
.Build();
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseStartup<Startup>()
.Build()
.Run();
}