CentOS/Linux 部署.NET5.0 Blazor到ngnix并用supervisor守护进程


Blazor Server

编译与发布

cd /home/soursecode/ServerDemo
donet publish -c release 
mv bin/release/net5.0/publish /var/www/ServerDemo

supervisor守护serverDemo(配置内路径必须都存在,不然会报错)

[program:serverDemo]
command=/bin/bash -c "dotnet serverDemo.dll --urls=http://*:5000"
directory=/var/www/serverDemo/
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
redirect_stderr=true
stderr_logfile=/home/supervisor/log/serverDemo.err.log
stdout_logfile=/home/supervisor/log/serverDemo.out.log

在nginx配置文件/etc/nginx/nginx.conf中配置反向代理

listen       80 default_server;
listen       [::]:80 default_server;
server_name  _;
root         /usr/share/nginx/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
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;
}

Blazor WebAssembly

编译与发布

cd /home/soursecode/webAssemblyDemo
donet publish -c release 
mv bin/release/net5.0/publish/wwwroot /var/www/webAssemblyDemo

WebAssembly是静态页面,不需要用dotnet命令执行dll,直接托管部署到nginx即可(nginx默认托管部署路径是/usr/share/nginx/html)

在nginx配置文件/etc/nginx/nginx.conf中配置托管路径

listen 80 default_server;
listen [::]:80 default_server;
server_name _;
#root /usr/share/nginx/html;
root /var/www/crm.Cilent;

location / {
#此时该端口不能有反向监听配置
}