重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

前言简单整理一个linux 简单上线 。这个是该系列的外篇,该系列继续更新 。献给刚学的人 。
正文安装实例dotnet new webapp -n AspNetCoreDemo -o firstwebapp编译并运行:
dotnet run查看网络情况:
netstat -anpl

重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

文章插图
将项目发布到指定位置:
dotnet publish -o /var/testdotnet/将打包好的运行起来:
dotnet /var/testdotnet/AspNetCoreDemo.dll配置nginx这个时候是外面是访问不了的 , 原因如下:
重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

文章插图
这里绑定的是127.0.0.1 , 这个是内网的,所以无法访问到 。
然后这里解释一下为什么localhost可以访问哈:
因为host: localhost 127.0.0.1 这个是默认的 。
当然我们可以改成0.0.0.0 去启动 , 但是一般不会这么干 。
这里说明一下,为什么我们一般有一个nginx 代理一个应用程序 。
那是因为nginx 做的不仅仅是代理,nginx 有安全模块,有限流模块,这样我们就不用再应用程序中写了 。
大大减少了项目的复杂度 。
那么安装一下nginx:
yum install nginx -y【重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]】然后启动一下:
sudo systemctl start nginx然后配置文件改成这样:
重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

文章插图
    server {        listen       80;        listen       [::]:80;        server_name  _;        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;         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;         proxy_set_header   X-Forwarded-Proto $scheme;        }        # Load configuration files for the default server block.        include /etc/nginx/default.d/*.conf;        error_page 404 /404.html;        location = /404.html {        }        error_page 500 502 503 504 /50x.html;        location = /50x.html {        }    }然后nginx 重新加载配置一下:
nginx -s reload然后我这里访问一下:
重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

文章插图
这样就ok了 。
创建服务文件什么是服务文件?
在 Linux 中 , 还有具有“.service”扩展名的单元配置文件,用于在进程退出时控制守护程序的行为 。这些文件也称为 服务文件、 单元文件和 服务单元文件 。
这些服务文件位于以下目录之一:
/usr/lib/systemd/system:存储已下载应用程序的服务文件/etc/systemd/system/:存储由系统管理员创建的服务文件
这两个分别放什么呢?
比如这种nginx 一般是第三方的程序,就放在/usr/lib/systemd/system下面 。
一般yum安装都在里面 。
然后/etc/systemd/system/ 这里放的是我们自己的应用程序 。
这里就可以在这个目录下写一个:
[Unit]Description= AspNetCoreDemo[Service]WorkingDirctory:/var/testdotnet/ExecStart=/usr/bin/dotnet /var/testdotnet/AspNetCoreDemo.dllRestart=awaysRestartSec=10SyslogIdentifier=AspNetCoreDemoUser=rootEnvironment=ASPNETCORE_ENVIRONMENT=DevelopmentEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false[Install]WantedBy=multi-user.target

推荐阅读