zoukankan      html  css  js  c++  java
  • 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博客发布在了 CentOS 上,简单记录一下使用过程和一些常用的命令,以备不时之需。

    博客地址:https://meowv.com

    渣渣服务器配置信息

    • 操作系统 CentOS 7.6 64 位
    • CPU 1 核
    • 内存 1 GB
    • 公网带宽 1 Mbps

    强大的管理工具

    • Xshell:强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议。
    • WinSCP:WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件
    • Xftp:Xftp 是一个功能强大的 SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。

    安装 .NET Core SDK

    sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
    
    sudo yum update
    sudo yum install dotnet-sdk-2.2
    
    dotnet --info
    

    安装 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的开机启动
    

    Nginx 配置

    server {
            listen 443 ssl;
            server_name meowv.com;
            ssl_certificate ssl/1_meowv.com_bundle.crt;
            ssl_certificate_key ssl/2_meowv.com.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
            ssl_prefer_server_ciphers on;
            # error_page 403 https://meowv.com;
            location / {
                # add_header Access-Control-Allow-Origin *;
                # root   /qix/static;
                proxy_pass http://localhost:5000;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            }
    }
    
    server {
        listen 80;
        server_name meowv.com;
        rewrite ^(.*)$ https://meowv.com;
    }
    

    安装 Supervisor 守护进程

    yum install python-setuptools
    
    easy_install supervisor
    
    mkdir /etc/supervisor
    echo_supervisord_conf > /etc/supervisor/supervisord.conf
    

    配置 Supervisor

    找到文件 /etc/supervisor/supervisord.conf 去掉文件最后的注释并修改为

    [include]
    files = conf.d/*.ini
    

    在 /etc/supervisor/ 下新建文件夹 conf.d,conf.d 文件夹下新建 meowv.conf 文件,内容为

    [program:meowv] #meowv为程序名称
    command=dotnet MeowvBlog.Web.dll #执行的命令
    directory=/qix/meowv # 命令执行的目录
    environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
    user=root #用户
    stopsignal=INT
    autostart=true #是否自启动
    autorestart=true #是否自动重启
    startsecs=3 #自动重启时间间隔(s)
    stderr_logfile=/var/log/meowv.com.err.log #错误日志文件
    stdout_logfile=/var/log/meowv.com.out.log #输出日志文件
    

    利用 crontab 定时执行 Python 爬虫任务

    在 Windows 平台我们可以使用任务计划程序运行定时任务,那么在 Linux 下有 crontab 帮我们实现

    可以用crontab -e命令来编辑/var/spool/cron下对应用户的cron文件,也可以直接编辑/etc/crontab

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    */30 * * * * /bin/python /qix/spider/spider.py #每30分钟执行一次
    
    
    systemctl start  crond.service #启动
    systemctl status  crond.service #查看状态
    systemctl stop  crond.service #停止
    systemctl restart  crond.service #重新启动
    systemctl reload  crond.service #重新加载
    

    常用命令

    cd                 #目录跳转
    cd /               #回到上一个目录
    ls                 #查看目录下的文件
    df -h              #查看文件使用情况
    mkdir              #创建文件夹文件夹
    vi                 # 编辑文件
    :wq!               #保存文件,并退出vi
    ifconfig -a        #查看ip
    free               #查看系统资源使用情况
    reboot             # 重启系统
    nginx -s reload    # 刷新nginx配置使其生效
    supervisorctl start program_name   #启动某个进程(program_name=配置的进程名称)
    supervisorctl stop program_name    #停止某一进程
    supervisorctl reload               #重新启动配置中的所有程序
    supervisorctl stop all             #停止全部进程
    supervisorctl update               #更新新的配置到supervisord
    supervisorctl restart program_name #重启某一进程
    supervisorctl                      #查看正在守候的进程
    
  • 相关阅读:
    python day03--字符串
    python day02--运算符,编码
    python day01
    数据库:对 null 和notnull,单表操作,多表操作 。
    数据库的介绍
    数据库对表的操作练习。
    数据库基础知识:介绍
    并发编程知识总结,软件开发架构,socket套接字模板,粘包问题,struct解决粘包问题,上传大文件数据,socketserver,关于操作系统的发展史,进程,线程。
    Event事件,进程池与线程池,高性能爬取梨视频,协程,协程的目的,gevent。
    GIL全局解释器锁,多线程的作用,死锁现象,信号量(了解),线程队列。
  • 原文地址:https://www.cnblogs.com/meowv/p/11357377.html
Copyright © 2011-2022 走看看