ASP.net Core使用Nginx部署到CentOS

  • Post author:
  • Post category:其他


一、在CentOS上安装.net Core

CentOS 7 包管理器 – 安装 .NET Core


参考地址



https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-centos7

#根据你需要的版本,修改对应版本号
sudo yum install dotnet-sdk-3.1

sudo yum install aspnetcore-runtime-3.1

sudo yum install dotnet-runtime-3.1

查看安装情况

dotnet --version

二、安装Nginx

#获取资源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
 
#安装nginx
sudo yum -y install nginx

#启动nginx
sudo systemctl start nginx
 
#nginx开机启动
sudo systemctl enable nginx

#防火墙开放80端口
#必须,如果没有开启防火墙,请先开启防火墙再开放端口
firewall-cmd --add-port=80/tcp --permanent
 
#重启防火墙
firewall-cmd --reload

三、配置Nginx代理

修改配置文件/etc/nginx/nginx.conf

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  localhost;
        root         /wwwroot; #web api的目录

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }
#添加代理内容
        location /POCCManager {
                rewrite ^/POCCManager/(.*)$ /$1 break;  #监听/POCCManager开头的
                proxy_pass http://localhost:5000; #代理地址和端口
        }
        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

修改完配置后,最好使用命令检查下配置是否正确,这样可以排除配置格式错误导致配置不生效,影响服务器的稳定运行。

nginx -t

修改配置后执行reload使配置生效

sudo nginx -s reload

四、安装Supervisor守护进程

# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务

在/etc/supervisord.d/下添加ini的配置文件就可以,我们添加一个sample.ini

这里要注意,提交到Linux之前必须把中文注释都删除,否则会有错误。

[program:Sample1]
command=dotnet Sample1.dll  #要执行的命令
directory=/root/netcoresamples/sample1 #命令执行的目录
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=root  #进程执行的用户身份
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=3 #自动重启间隔
stderr_logfile=/root/netcoresamples/sample1/log/Sample1.err.log #标准错误日志
stdout_logfile=/root/netcoresamples/sample1/log/Sample1.log #标准输出日志

重新启动supervisord需执行

#supervisorctl shutdown
#supervisord -c /etc/supervisord.conf

需把9001端口加到Nginx配置上

location /supervisor{
                proxy_pass http://localhost:9001/;
        }    



版权声明:本文为proppig原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。