linux6.8开机默认用户,CentOS8 .NET Core项目部署

1. 安装 .NET Core SDK

.NET Core 3.1 在 CentOS 8 的默认包存储库中有提供,直接使用下面命令安装 SDK:

sudo dnf install dotnet-sdk-3.1

安装完成后,使用 dotnet --info 命令查看是否能正确输出当前 SDK 信息。

2. 安装 ftp

2.1 使用以下命令安装VSFTPD:

sudo yum install vsftpd

2.2 启动服务,并将其设置为在系统启动时启动,并显示以下内容:

sudo systemctl start vsftpd

sudo systemctl enable vsftpd

2.3 开启21端口进行通信,注意这里是云服务器控制台开启端口

2.4 配置VSFTPD

修改 /etc/vsftpd/vsftpd.conf 配置文件 。

使用以下命令编辑配置文件:

vi /etc/vsftpd/vsftpd.conf

此处注意 userlist_enable 、userlist_deny 的设置,如果仅用来上传一次文件,可以设置 userlist_enable=No, 之后再关闭

完成配置文件编辑后,保存更改。vi 保存退出: Esc 进入命令模式,输入 :wq 即可。

重启vsftpd服务:

sudo systemctl restart vsftpd

2.5 创建ftp 用户

使用命令:

sudo adduser newftpuser

sudo passwdnewftpuser

根据提示输入密码。

将新用户添加到用户列表:

echo "newftpuser" | sudo tee –a /etc/vsftpd/user_list

给新用户创建目录,并调整权限:

sudo mkdir –p /home/newftpuser/ftp/upload

sudo chmod550 /home/newftpuser/ftp

sudo chmod750 /home/newftpuser/ftp/upload

sudo chown –R testuser:/home/newftpuser/ftp

使用用户及密码登录服务器

ftp ip

3. 使用ftp 上传 .NET Core 文件

将文件压缩为.zip 文件

命令上传文件:

put test.zip

上传成功后,在服务器的 /home/newftpuser 文件中将出现 上传的 test.zip

命令解压文件:

unzip test.zip

4. 启用防火墙

查看防火墙状态:

systemctl status firewalld

启动防火墙:

systemctl start firewalld

允许 HTTP 和 HTTPS:

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

开放 80 端口:

firewall-cmd --permanent --zone=public --add-port=80/tcp

重启防火墙:

firewall-cmd --reload

5. 安装 nginx

安装 nginx

sudo dnf install nginx

启动 nginx

systemctl start nginx

设置开机自启

systemctl enable nginx

配置 nginx,nginx 默认的配置文件为 /etc/nginx/nginx.conf

修改 该配置文件,如果有多个项目配置文件可以在 /etc/nginx/conf.d 中创建多个 .conf 文件

server {

listen80; #更改为80端口

server_name localhost; #更改为域名名称

location/{

proxy_pass http://localhost:5000; #更改为 .netcore项目的地址

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;

}

}

}

测试配置:

nginx -t

重新启动:

nginx -s reload

查看状态:

sudo systemctl status nginx

需要注意80 端口是否被占用,使用以下命令查看端口:

netstat -tulpn

如果被占用,可用以下命令杀死进程:

kill -pid

6. 启动项目

进入项目文件,使用以下命令启动项目:

dotnet TEST.WebAPI.dll

至此,如果配置正确,你应该可以使用域名或者ip 在你本地访问项目。

7. 守护进程Supervisor

7.1 安装 Supervisor

#执行epel-release

sudo yum-y install epel-release

#安装Supervisor

sudo yum-y install supervisor

#使用配置文件启动supervisor

sudo supervisord-c /etc/supervisord.conf

#启动supervisorctl

sudo supervisorctl-c /etc/supervisord.conf

#查看supervisor 版本

version

#查看状态

status

7.2 创建.NET Core项目的Supervisor配置文件

#进入supervisord.d目录

cd/etc/supervisord.d

#新建NetCore进程配置文件

sudo touch DemoNetCore.ini

#查看和编辑DemoNetCore.ini配置文件

sudo vim DemoNetCore.ini

#进入文件后,按“i”或者“a”进入插入模式,插入下面的配置信息

#配置程序名称

[program:DemoNetCore]

#运行程序的命令

command=dotnet Demo.Net.Core.dll --urls="http://*:8081;http://*:8082"#命令执行的目录

directory=/var/www

#进程环境变量

environment=ASPNETCORE_ENVIRONMENT=Production

#进程执行的用户身份

user=demo

#进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置

stopsignal=INT

#如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置

autostart=true#这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启

autorestart=true#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置

startsecs=1#错误日志文件

stderr_logfile=/var/log/DemoNetCore.err.log

#输出日志文件

stdout_logfile=/var/log/DemoNetCore.out.log

7.3 保存配置文件,并重新启动

#通过配置文件来启动supervisor

sudo supervisord-c /etc/supervisord.conf

#启动supervisorctl

sudo supervisorctl-c /etc/supervisord.conf

#重新加载配置文件

reload

#查看运行的状态

status

7.4 查看站点知否运行

ps -aux | grep "Demo.Net.Core.dll"

7.5 配置Supervisor开机自启动

#进入system目录

cd/usr/lib/systemd/system

#编辑supervisord.service文件

sudo vim supervisord.service

supervisord.service文件内容为:

[Unit]

Description=Process Monitoring and Control Daemon

After=rc-local.service nss-user-lookup.target

[Service]

Type=forking

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

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42

[Install]

WantedBy=multi-user.target

编辑好后保存退出,然后执行命令,查看是否启动成功

#启动服务

systemctl enable supervisord

#验证一下是否为开机启动

systemctl is-enabled supervisord

7.6 Supervisor常用命令

# 启动所有

supervisorctl start all

# 重启所有

supervisorctl restart all

# 停止所有

supervisorctl stop all

#PS:要操作某个服务,把all换成服务名即可

#查看服务状态

supervisorctl status

至此,部署完毕。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Centos7发布说明 环境说明: 服务器系统:CentOS 7.2.1511 相关工具:Xshel、Xftp 服务器软件软件:.netcore、nginx、supervisor 准备好发布的程序 安装.NET Core SDK for CentOS7 打开网址:https://www.microsoft.com/net/core#linuxcentos 复制如下命令,单步执行: sudo yum install libunwind libicu curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet sudo ln -s /opt/dotnet/dotnet /usr/local/bin 输入 dotnet –info 来查看是否安装成功 配置Nginx 下载安装Nginx,单步执行如下命令: curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx systemctl start nginx 来启动nginx systemctl enable nginx 来设置nginx的开机启动(linux宕机、重启会自动运行nginx不需要连上去输入命令)。 配置防火墙 命令:firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口) 命令:systemctl restart firewalld(重启防火墙以使配置即时生效) 测试nginx是否可以访问。 配置nginx对ASP.NET Core应用的转发 修改 /etc/nginx/conf.d/default.conf 文件,将文件内容替换为: server { listen 80; 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; } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值