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 / {
#此时该端口不能有反向监听配置
}