在CentOS中部署.Net Core2.1网站

做为一个刚接触linux的新手,在安装环境的时候,折腾了很多时间,写下一篇总结帖,帮助下新人吧~python

作完后再回来看步骤,也很简单,也就如下几步:linux

1.安装.Net Core环境nginx

2.安装nginx实现端口转发git

3.设置nginx开机启动github

4.设置防火墙(有些云服务器可省略)centos

5.配置SELinux的白名单(有些云服务器可省略)服务器

6.上传网站curl

7.安装守护进程(若是是本地虚拟机,最好手动启动网站,易于查找错误)tcp

8.设置守护进程开机启动(若是是本地虚拟机,最好手动启动网站,易于查找错误)网站

 

注意:1.文中的“GroupShareSite”名字可自定义,根据项目名称来便可。2.【执行】表示经过任意方式(例如ftp上传文件等),实现描述便可。

1.安装.Net Core环境

【命令】sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

【↑注释】添加yum源

【命令】sudo yum update

【↑注释】更新已安装的全部yum包

【命令】sudo yum install dotnet-sdk-2.1

【↑注释】安装.Net Core2.1的SDK

 

2.安装Nginx实现端口转发

【命令】curl -o  nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

【↑注释】下载指定的nginx文件

【命令】rpm -ivh nginx.rpm

【↑注释】安装rpm包

【命令】yum install nginx -y

【↑注释】安装nginx

【执行】修改 /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;
}
}

 

【命令】systemctl start nginx

【↑注释】启动nginx

 

3.设置Nginx开机启动

【命令】systemctl enable nginx

【↑注释】设置开机启动

 

4.设置防火墙

【命令】systemctl start firewalld.service

【↑注释】启动防火墙

【命令】systemctl enable firewalld.service

【↑注释】设置开机启动防火墙

【命令】firewall-cmd --state

【↑注释】查看防火墙当前状态(可省略)

【命令】firewall-cmd --zone=public --add-port=80/tcp --permanent

【↑注释】配置80端口容许访问

【命令】systemctl restart firewalld

【↑注释】重启防火墙

 

5.配置SeLinux的白名单

【命令】yum install policycoreutils-python

【↑注释】安装policycoreutils-python

【命令】sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

【↑注释】上面的我也不知道...百度没找到,求解

【命令】sudo semodule -i mynginx.pp

【↑注释】上面的我也不知道...百度没找到,求解

 

6.上传网站到服务器

我是用FileZillaPortable上传的,设置界面以下:

个人站点目录是/home/GroupShareSite

网站上传后,经过cd进入站点目录。这一步很是很是重要!若是没有cd进入目录就执行下面的命令启动站点,会致使配置文件没法读取,网站资源获取失败等等不可预期的问题。

执行如下命令: 

【命令】dotnet GroupShareSite.dll

【↑注释】运行网站,由于个人项目名是GroupShareSite,因此这个名称须要根据本身的实际状况来修改

 

7.安装守护进程

【命令】yum install python-setuptools -y

【↑注释】安装python

【命令】easy_install supervisor

【↑注释】安装守护进程

【命令】mkdir /etc/supervisor

【↑注释】建立配置文件目录

【命令】echo_supervisord_conf > /etc/supervisor/supervisord.conf

【↑注释】这个不知道什么意思,但愿你们能告诉我...

【执行】修改 /etc/supervisor/supervisord.conf 文件中的内容:

将里面的最后两行:        
;[include] 
;files = relative/directory/*.ini 
改成
[include]
files = conf.d/*.conf

 

【执行】建立文件/etc/supervisor/conf.d/GroupShareSite.conf,内容以下:

[program:GroupShareSite]
command=dotnet GroupShareSite.dll ; 运行程序的命令
directory=/home/GroupShareSite/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/GroupShareSite.err.log ; 错误日志文件
stdout_logfile=/var/log/GroupShareSite.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT

 

【↑注意】要修改GroupShareSite为本身的东西

【命令】supervisord -c /etc/supervisor/supervisord.conf

【↑注释】运行守护程序

 

8.设置守护进程开机启动

【执行】新建文件/usr/lib/systemd/system/supervisord.service,内容以下:

# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target

 

【命令】systemctl enable supervisord

【↑注释】设置开机启动

【命令】systemctl is-enabled supervisord

【↑注释】判断是否成功设置开机启动

 

结束

有几个地方须要注意:

1.文中全部涉及到“GroupShareSite”的地方,都须要根据实际进行修改

2.SeLinux必定要设置,不然网站通常都没法访问(阿里云轻量应用服务器不须要设置,好像它没有限制)

3.若是手动启动站点,必定要经过cd进入站点根目录,而后再运行,不然,1)运行的网站会找不到配置文件。2)运行后,站点资源没法找到。

最后,放一下网站地址,就当作个宣传吧:

http://www.star110.com

还在开发过程当中...

相关文章
相关标签/搜索