欢迎光临散文网 会员登陆 & 注册

如何将Asp.net core 3.1 网站部署到Centos7.X服务器上

2020-02-02 21:32 作者:Tuple_元组  | 我要投稿

一、安装.net core SDK及asp.net core 运行时.

1远程登陆Centos7.X 服务器

ssh -p8080 root@188.180.180.180

2.安装 .NET 之前,需要:注册 Microsoft 密钥;注册产品存储库;安装必需的依赖项。(每台计算机只需要执行一次此操作。)

[root@localhost ~]#sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

3.安装 .NET Core SDK

[root@localhost ~]#sudo yum install dotnet-sdk-3.1

4.安装 ASP.NET Core 运行时(注意:ASP.NET Core 运行时,因为它同时包括 .NET Core 和 ASP.NET Core 运行时)

[root@localhost ~]#sudo yum install aspnetcore-runtime-3.1

二、拷贝网站程序到服务器指定用户的指定目录下

scp -r -P 8xxxx d:\发布项目\China.WebChat.Project root@188.180.180.180:GangHangProject

三、开放Centos7.X 服务器的指定端口

1.检查防火墙状态

[root@localhost ~]#firewall-cmd --state

running

2.开放指定的端口(假设是:8888),[移除端口用:remove]

[root@localhost ~]#firewall-cmd --permanent --add-port=8888/tcp

success

3.检查指定的端口是否已开放

[root@localhost ~]#firewall-cmd --query-port=8888/tcp

no

4.重启防火墙(修改配置后,必须重启防火墙,操作才能生效)

[root@localhost ~]#service firewalld restart

Redirecting to /bin/systemctl restart firewalld.service

5.再次检查防火墙状态(可省略此步)

[root@localhost ~]#firewall-cmd --query-port=8888/tcp

yes

6.查看防火墙规则(此步可省略,目的是再确认一下)

[root@localhost ~]#firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: enp0s31f6

  sources: 

  services: ssh dhcpv6-client

  ports: 8888/tcp

  protocols: 

  masquerade: no

  forward-ports: 

  source-ports: 

  icmp-blocks: 

  rich rules: 

至此,如在服务器上运行donet appname.dll,通过开放的端口应该可以访问的到。

四、安装并配置 nginx (反向代理服务器,如不考虑负载平衡,可不用此代理,直接跳到第五步。)

1.添加Nginx存储库

[root@localhost ~]#sudo yum install epel-release

2.安装Nginx

[root@localhost ~]#sudo yum install nginx

3.启动Nginx(Nginx不会自行启动)

[root@localhost ~]#sudo systemctl start nginx

4.允许HTTP和HTTPS通信(对防火墙操作,此步视具体情况运行)

[root@localhost ~]#sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=httpssudo firewall-cmd --reload

5.配置Nginx,可以直接在服务器上修改nginx的配置文件,也可以下载下来修改,然后再上传。

[root@localhost ~]#vi /etc/nginx/nginx.conf

打开后i键修改,添加以下内容:

   server {

      listen 8888;

      server_name  localhost;

      location / {

          proxy_pass http://localhost:5000;

          proxy_http_version 1.1;

          proxy_set_header Upgrade $http_upgrade;

          proxy_set_header Connection $http_connection;

          proxy_set_header Host $host;

          proxy_cache_bypass $http_upgrade;

         }

    }

按ESC键,再输入 :wq 保存退出

如想下载到本地编辑,然后再上传到服务器,可用以下两条命令。

scp -P8080 root@188.180.180.180:/etc/nginx/nginx.conf nginx.conf

scp -P8080 nginx.conf  root@188.180.180.180:/etc/nginx/nginx.conf

6.验证nginx配置文件是否正确(进入nginx安装目录sbin下,输入命令:)

[root@localhost ~]#nginx -t

…… nginx.conf syntax is ok

…… nginx.conf test is successful

7.重启nginx服务

[root@localhost ~]#nginx -s reload

五、安装并配置 进程守护者 Supervisor (以便程序能不间断运行)

1.安装

[root@localhost ~]#yum install python-setuptools

[root@localhost ~]#easy_install supervisor

2.配置

(1) 指定 Supervisor 配置文件 目录,并生成缺省的配置文件

[root@localhost ~]#mkdir /etc/supervisor

[root@localhost ~]#echo_supervisord_conf > /etc/supervisor/supervisord.conf

(2)对生成的缺省配置文件进行编辑

[root@localhost ~]#vi /etc/supervisor/supervisord.conf

在打的文件最下边找到如下文本片段:

;[include]

;files = relative/directory/*.ini

修改为:

[include]

files = /etc/supervisor/conf.d/*.conf

3.为已经部署的asp.net core 网站添加进程配置文件(假设叫:netcore.conf)

[root@localhost ~]#vi /etc/supervisor/conf.d/netcore.conf

文件内容如下:

[program:China.WebChat.Project]                                       ;自定义进程名称

command=dotnet China.WebChat.Project.dll                       ;程序启动命令

directory=/home/dell/GangHangProject/China.WebChat.Project     ;命令执行的目录

autostart=true                                  ;在Supervisord启动时,程序是否启动

autorestart=true                                ;程序退出后自动重启

startretries=5                                  ;启动失败自动重试次数,默认是3

startsecs=1                                     ;自动重启间隔

user=root                                       ;设置启动进程的用户,默认是root

priority=999                                    ;进程启动优先级,默认999,值小的优先启动

stderr_logfile=/var/log/Scorpio.WebApi.err.log  ;标准错误日志

stdout_logfile=/var/log/Scorpio.WebApi.out.log  ;标准输出日志

environment=ASPNETCORE_ENVIRONMENT=Production   ;进程环境变量

stopsignal=INT                                  ;请求停止时用来杀死程序的信号

4.应用配置文件,启动Supervisor

[root@localhost ~]#supervisord -c /etc/supervisor/supervisord.conf

5.配置Supervisor开机启动

(1)设置并编辑服务配置文件

[root@localhost ~]#vi /usr/lib/systemd/system/supervisord.service

文件内容如下:

[Unit]

Description=Supervisor daemon

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown

ExecReload=/usr/bin/supervisorctl $OPTIONS reload

KillMode=process

Restart=on-failure

RestartSec=42s

[Install]

WantedBy=multi-user.target

(2)设置开机启动

[root@localhost ~]#systemctl enable supervisord.service

[root@localhost ~]#systemctl daemon-reload

六、重启服务器 

[root@localhost ~]#reboot

至此全部搞定,Good luck!

如何将Asp.net core 3.1 网站部署到Centos7.X服务器上的评论 (共 条)

分享到微博请遵守国家法律