一个基于 ASP.NET Core 3.1 的功能齐全的简易博客引擎

环境

  • Ubuntu 16.04
  • dotnet core sdk 2.2
    • 通过 dotnet CLI 安装的版本需要 dotnet core sdk 2.2

参考

步骤

  1. 安装并新建 Miniblog.Core
    • 先安装 dotnet 环境,参见 Microsoft 官方页面
    • 执行指令
      dotnet new --install MadsKristensen.AspNetCore.Miniblog
      mkdir blog.net
      cd blog.net
      dotnet new miniblog

      查看目录,项目结构为 ASP.NET Core MVC

  2. 配置账户密码
    • 打开目录下的 appsettings.json
      vim appsettings.json
    • 更改用户名和密码字段,注意密码字段需要填写对应 Hash 值,Hash 可以进入字段后注释中的网址 Online hasher 生成如果加盐需要将盐填入盐字段
    • 在 appsettings.json 中还可以设置博客的标题等等
  3. 指定绑定 IP 和端口(可跳过)
    • 默认情况下直接运行博客,只会运行在 localhost:5000,只能在本机访问
    • 如果想要外网访问,安全的做法是使用 nginx 等 Web 服务器反向代理(proxy_pass),这里仅作测试用(或者只在内网访问)
    • 编辑 Startup.cs,找到 CreateDefaultBuilder 一行,添加方法 UseUrls()
      //...
      WebHost.CreateDefaultBuilder(args)
          .UseStartup<Startup>()
          .UseKestrel(a => a.AddServerHeader = false)
          .UseUrls("http://0.0.0.0:5000") // add this
          .Build();
      //...
  4. 运行博客
    • 在博客目录下执行指令
      dotnet run

Continue reading “基于 dotnet core 的简易博客引擎 Miniblog.Core 搭建”

主机安装redis,再在 WordPress 安装插件添加 redis 缓存

环境

  • LNMP 1.6 脚本
  • PHP 7.3
    • 之所以没写其他的是因为忘了看版本,虚拟机也销毁了

参考

步骤

  1. 如果已经通过脚本安装好 LNMP 环境,直接进入脚本文件夹,运行 addon.sh
    cd lnmp1.6
    ./addon.sh

    如果没有 LNMP 环境,先安装 LNMP

  2. 选择 5,安装 redis
  3. 安装完毕即可回到 WordPress 管理界面,添加 redis 插件进入插件管理页面,开启插件

Continue reading “WordPress 添加 Redis 缓存(LNMP环境)”

环境

  • Ubuntu 18.04 Server

准备

参考

步骤

服务端配置

  1. 首先编译并安装带 rtmp 模块的 nginx
    • 使用包管理安装的 nginx 不自带 rtmp 模块,后来查到可以安装 libnginx-mod-rtmp 来加入 rtmp 模块,但实践后失败了,最后选择编译安装  如果已经安装了 nginx,需要添加其他 nginx 模块,参见 nginx 安装后添加 rtmp 模块
    • 安装编译工具/依赖
      sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-dev -y
    • 创建编译目录并下载源码
      sudo mkdir ~/build && cd ~/build
      sudo git clone git://github.com/arut/nginx-rtmp-module.git
    • 下载并解压 nginx 安装包(这里使用1.14版)
      sudo wget http://nginx.org/download/nginx-1.14.1.tar.gz
      sudo tar xzf nginx-1.14.1.tar.gz
      cd nginx-1.14.1
    • 编译并安装带 rtmp 模块的 nginx
      sudo ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module
      sudo make
      sudo make install
    • 开启 nginx 服务
      # 链接到 /usr/local/bin
      # sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
      # nginx
      # 或者直接用绝对路径
      sudo /usr/local/nginx/sbin/nginx
  2. 设置 nginx.conf
    • 默认生成的 nginx 配置文件没有启用 rtmp 模块,将默认配置文件备份
      sudo mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

      然后替换为以下内容

      #user  nobody;
      worker_processes  1;
      
      error_log  logs/error.log debug;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          sendfile        on;
          keepalive_timeout  65;
      
          server {
              listen       8080;
              server_name  localhost;
      
              # sample handlers
              #location /on_play {
              #    if ($arg_pageUrl ~* localhost) {
              #        return 201;
              #    }
              #    return 202;
              #}
              #location /on_publish {
              #    return 201;
              #}
      
              #location /vod {
              #    alias /var/myvideos;
              #}
      
              # rtmp stat
              # 查看 rtmp 服务状态
              location /stat {
                  rtmp_stat all;
                  rtmp_stat_stylesheet stat.xsl;
              }
              location /stat.xsl {
                  # you can move stat.xsl to a different location
                  # stat.xsl 文件的路径
                  root /usr/build/nginx-rtmp-module;
              }
      
              # rtmp control
              location /control {
                  rtmp_control all;
              }
      
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }
      
      rtmp {
          server {
              listen 1935;
              ping 30s;
              notify_method get;
      
              # 设置直播 myapp 为直播应用名称,可以自行更改
              # 相应的,也可以设置多个直播应用
              application myapp {
                  live on; # 开启直播
      
                  # sample play/publish handlers
                  #on_play http://localhost:8080/on_play;
                  #on_publish http://localhost:8080/on_publish;
      
                  # sample recorder
                  #recorder rec1 {
                  #    record all;
                  #    record_interval 30s;
                  #    record_path /tmp;
                  #    record_unique on;
                  #}
      
                  # sample HLS
                  # 开启HLS
                  #hls on;
                  #hls_path /tmp/hls;
                  #hls_sync 100ms;
              }
      
              # Video on demand
              # 点播服务
              application vod {
                  play /var/Videos; # 更改为视频路径
              }
      
              # Video on demand over HTTP
              # HTTP点播服务,这里我没有设置成功
              #application vod_http {
              #    play http://localhost:8080/vod/;
              #}
          }
      }
    • 将 stat.xsl 移动到 /usr/build/nginx-rtmp-module/ 目录下
      mkdir /usr/build
      mkdir /usr/build/nginx-rtmp-module
      mv [your build directory]/stat.xsl /usr/build/nginx-rtmp-module

      或者更改 nginx 配置文件的 stat.xsl 的文件路径

    • 测试并重启 nginx
      nginx -t
      # if OK then
      nginx -s reload
  3. 访问 http://[your domain or IP]:8080/stat 查看 nginx-rtmp 的运行状态myapp 即为直播用到的配置,vod 为 rtmp 点播所用配置,vod_http 为 http 的点播服务(这个没有实践成功),至此服务端配置完成

Continue reading “使用 nginx rtmp module 实现 rmtp 点播/直播功能”