zoukankan      html  css  js  c++  java
  • 在CentOS中部署.Net Core2.1网站

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

    做完后再回来看步骤,也很简单,也就以下几步:

    1.安装.Net Core环境

    2.安装nginx实现端口转发

    3.设置nginx开机启动

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

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

    6.上传网站

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

    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

    还在开发过程中...

  • 相关阅读:
    LFS Linux From Scratch 笔记2(经验非教程)BLFS
    LFS Linux From Scratch 笔记(经验非教程)
    Using VNC on a debian/Ubuntu server with a OS X Mac
    Use weechat (IRC client) on OS X. MacBook Pro
    HC
    Vim 7.4.1952 with Python/Ruby/Lua/Perl/C Syntax built for Ubuntu 16.04 x86_64
    How to make workflow chart using several tools in Linux?
    STM32 串口 重定向
    有哪些大家不说,但需要知道的社会规则?
    如何理解 UL94HB , UL94-V0 , UL94-V1 , UL94-V2
  • 原文地址:https://www.cnblogs.com/zhuxiaoxiao/p/9746900.html
Copyright © 2011-2022 走看看