CentOS7 .NetCore+Nginx 部署

xiaoxiao2021-02-28  43

安装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(); }
转载请注明原文地址: https://www.6miu.com/read-46589.html

最新回复(0)