朱纯树博客
VPS测评推荐网站

冀青云 - 香港CN2-GIA 月28元 / 香港NTT 月9元

内容收录阅读(2102)

冀青云 - 香港CN2-GIA 月28元 / 香港NTT 月9元插图

商家介绍:

冀青云是由有着五年以上运维经验的工程师维护,于2015年上线,以互联网办公形式进行运维。提供虚拟主机、VPS服务器等互联网常见商品。主要服务有河北、河南、山东、甘肃地区的中小型企业及个人建站使用。提供网站建设所需要的服务器为其所盈利主要方式。曾用名(零一主机)。

商家VPS产品主要分为香港沙田自营业务,即CN2-GIA线程。另一个是香港NTT业务,除移动外均绕路,价格便宜带宽大。

优惠方案:

香港CN2入门型
  • 核心:1核CPU
  • 内存:2GGB
  • 硬盘:50GB
  • 流量:Unmilited
  • 端口:3Mbps
  • 系统:Only Centos
  • 价格:55元/月
  • 传送:购买链接
香港NTT自营型
  • 核心:1核CPU
  • 内存:1GGB
  • 硬盘:40GB
  • 流量:300GB
  • 端口:50Mbps
  • 架构:KVM
  • 价格:9.9元/月
  • 传送:购买链接

机房测试

测试ip联系客服索要

阴阳人QQ4370142 阴阳人+1

trees阅读(2551)

QQ4370142,脑残QQ4370142

首先是某网友在我群里做域名备案

他要求别人先给他备案再给钱,这就好比:让我用完你一个月服务器再给钱甚至附带白嫖思想

阴阳人QQ4370142 阴阳人+1插图

其次是 我在群里卖个域名,typecho.ltd

他直接说不值钱,换谁不生气

阴阳人QQ4370142 阴阳人+1插图1

于是我一气之下用机器人指令把他T了

阴阳人QQ4370142 阴阳人+1插图2

然后他就去隔壁论坛骂我,其实这没什么,烦人的是评论区中不明实情的跟风狗

阴阳人QQ4370142 阴阳人+1插图3

揭发每一个阴阳人,让网络更绿色更和谐

Docker + uWSGI + nginx + MySQL + Django 论Django Web生产环境的最佳搭配

trees阅读(1057)


由于下学期要参与我川著名“内卷展览大会”——大创,前后端的一些表面功夫还是得了解一些,正好上个暑假用django开发的小项目在学期末尝试性地上线生产环境试运行了一小会,期间也折腾了不少方案,这里给出一套成熟的Django Web生产环境的配置供大家参考:docker + uwsgi + nginx + mysql + Django。

Docker

Docker作为一款简单易用的容器化技术,广受开发人员喜爱。在我们这套方案中,我们将利用docker-compose搭建两个容器:web和db,其中web中运行uWSGI+nginx+Django,db中运行MySQL。

Dockerfile

下面给出web的Dockerfile供参考:

FROM centos:7
MAINTAINER MrZilinXiao <xiaozilin1@gmail.com>
ENV TZ "Asia/Shanghai"
ENV DOCKER_SRC=SCUCourseKiller
ENV DOCKER_HOME=/root
ENV DOCKER_PROJECT=/root/SCUCourseKiller
WORKDIR $DOCKER_HOME
RUN mkdir SCUCourseKiller
RUN yum -y install epel-release yum-utils && \
    yum -y install git nginx gcc gcc-c++ crontabs && \
    yum -y install python36 python36-devel python36-pip && \
    yum clean all
RUN yum -y install mariadb-devel mysql-devel
WORKDIR $DOCKER_PROJECT
COPY ./ ./
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt --default-timeout=100
EXPOSE 8000
RUN chmod u+x start_script
ENTRYPOINT ["./start_script"]

可以看见,build基于centos,安装好必要的依赖包之后直接通过yum安装了python3.6,将当前目录文件全部拷贝进docker后又用pip安装了依赖,最后运行start_script这个shell文件。

start_script

#!/bin/bash

export LANG="en_US.UTF-8"

# nginx settings
sed -i '/user/{s/nginx/root/}' /etc/nginx/nginx.conf
ln -s /root/SCUCourseKiller/mysite_nginx.conf /etc/nginx/conf.d/
nginx

# application settings
export DJANGO_SETTINGS_MODULE=SCUCourseKiller.settings
python3 ./manage.py makemigrations
python3 ./manage.py migrate --noinput
python3 ./manage.py loaddata ./fixtures/superuser.json
python3 ./manage.py collectstatic --noinput

uwsgi --ini ./mysite_uwsgi.ini

start_script文件主要完成docker运行的初始化任务,包括建立nginx配置文件的软链接、数据库的migration和管理员用户的导入(可省略)、uWSGI的运行。

docker-compose

docker-compose是一款辅助docker管理的小工具,可以很方便地配置docker镜像、实现容器管理,特别是对依赖关系的管理。

docker-compose的配置文件为yaml格式,对缩进格式要求极其严格,且这类错误不好检查,故在出现错误时建议使用第三方检查工具

version: '3.3'
services:
  db:
    container_name: mymysql
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: SCUCourseKiller
      MYSQL_USER: root
      MYSQL_PASSWORD: SCUCourseKiller
      MYSQL_ROOT_PASSWORD: SCUCourseKiller
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --innodb-flush-log-at-trx-commit=0
    ports:
    - 3306:3306
    volumes:
    - "./SCUKiller/mysql/config:/etc/mysql/conf.d"
    restart: always
    container_name: SCUCourseKiller
    build: ./
    command: ["./wait-for-it.sh", "db:3306"]
    ports:
      - 8000:8000
    depends_on:
      - db
    links:
      - db

将以上内容与Dockerfile放置在同级目录下,其中需要注意的参数有:

  • restart:容器重启后是否跟随重启。
  • volumes:指出本地与容器的卷挂载关系,本次只在db容器中设置了挂载,用于加载自定义的mysql配置文件my.cnf,后续数据库配置过程会提及。
  • command:容器启动前执行的命令,这项命令的优先级在Dockerfile的ENTRYPOINT之前,可以结合wait-for-it.sh实现在特定端口开放前的阻塞,避免数据库未加载完成就载入Django导致错误。
  • depends_on:依赖关系的简单设定,决定build和run时运行的先后顺序。
    注意,运行先后顺序的确定与上面的wait-for-it.sh并不冲突,这里的顺序并不阻塞,即Docker并不会等到MySQL完全启动完成后再开始启动Django。
  • links:配置Docker之间网络关系的简单配置,将直接将两个容器放置在bridge中。复杂的网络关系配置可以通过与services同级的networks配置项配置。e.g.:
networks:
  killerNet:
    driver: bridge
    ipam:
      config:
        - subnet: 172.19.0.0/16

uWSGI

uWSGI是一个简易的Web服务器,在此项目中作为Nginx与Django之间的中间件用于更好地处理多并发。其与nginx可以采用本地端口或sock文件通信,与Django则采用WSGI接口通信。

Docker + uWSGI + nginx + MySQL + Django 论Django Web生产环境的最佳搭配插图

mysite_uwsgi.ini文件:

[uwsgi]

# Django-related settings
# the base directory (full path)
chdir = /root/SCUCourseKiller

# Django's wsgi file
module = SCUCourseKiller.wsgi
# the virtualenv (full path)
# home = /path/to/virtualenv

# /process-related settings
# master
# master = true
# maximum number of worker processes
processes = 2

enable-threads = true
# the socket (use the full path to be safe)
socket = /root/SCUCourseKiller/SCUCourseKiller/docker_app.sock
# ... with appropriate permissions - may be needed
chmod-socket    = 666
# clear environment on exit
vacuum          = true

nginx

nginx的配置主要注意与uWSGI的通信即可,其余则需要注意static、media路径的转发:

# mysite_nginx.conf

upstream django {
    server unix:///root/SCUCourseKiller/SCUCourseKiller/docker_app.sock;
}

# configuration of the server
server {
    # the port your site will be served on, default_server indicates that this server block
    # is the block to use if no blocks match the server_name
    listen      8000 default_server;

    # the domain name it will serve for
    server_name 0.0.0.0; # substitute your machine's IP address or FQDN
    charset     utf-8;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    access_log  /root/SCUCourseKiller/log/access.log  main;
    error_log  /root/SCUCourseKiller/log/error.log  info;

    # Django media
    location /media  {
        alias /root/SCUCourseKiller/media;  # your Django project's media files - amend as required
    }

    location /static {
        alias /root/SCUCourseKiller/static; # your Django project's static files - amend as required
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django; # for a file socket
        include     /root/SCUCourseKiller/uwsgi_params; # the uwsgi_params file you installed
    }
}

MySQL

MySQL的配置在Docker中略有提及,主要包括MySQL在初始化设置时需要配置库名、用户名和密码并更改编码格式以支持中文。为实现修改并发连接数等高级操作,我们可以自定义my.cnf配置文件并挂载至容器中特定目录即可。

# my.cnf

[mysqld]

character-set-server=utf8mb4 default-time-zone=’+8:00′ innodb_rollback_on_timeout=’ON’ max_connections=1024 innodb_lock_wait_timeout=15

Django

首先确保通过python manage.py runserver可以成功启动Debug模式服务器,随后将settings.py中的DEBUG设为false。
centos7中安装完python后并没有django等依赖包,需要自行设置requirements.txt文件:

mysqlclient
retrying
Django==2.1.8
Pillow==5.3.0
requests==2.19.1
urllib3==1.23
uwsgi

开发、运行与生产上线

每次修改完代码后,可通过centos中的git pull同步或者直接在docker中通过docker exec -it [Docker Hash或容器名称] /bin/bash进入容器,用vi修改。

本地测试与上线时:

docker-compose build # 构建容器
docker-compose start -d # 以daemon守护模式启动
docker-compose logs -f # 查看日志

notifyBar 仿 Twitter 顶部消息提示栏插件 - 免费下载

trees阅读(948)

jQuery Notify bar 是一款仿 Twitter 的简洁的页面顶部消息提示栏插件。通过该插件你可以在页面中显示各种类型的消息提示栏。也可以通过参数来自定义消息提示栏的背景和颜色等。

使用方法:

使用该消息提示栏插件需要在页面中引入 jquery.notifyBar.css 和 jquery,以及 jquery.notifyBar.js 文件。

<link rel="stylesheet" href="css/jquery.notifyBar.css">
<script src="js/jquery.min.js"></script>
<script src="js/jquery.notifyBar.js"></script>

初始化插件:

在页面 DOM 元素加载完毕之后,可以通过下面的方法来初始化一个消息提示栏组件。

jQuery(function () {
  jQuery.notifyBar({
    HTML: "这里是消息提示栏的提示消息!",
    delay: 2000,
    animationSpeed: "normal"
  });  
});

你也可以将消息提示栏的位置设置在页面的底部。

jQuery(function () {
  jQuery.notifyBar({
    html: "Hi from below!",
    cssClass: "Appear at bottom",
    position: "bottom"
  });
});

下载地址:

该消息提示栏插件的 github 地址为:https://github.com/dknight/jQuery-Notify-bar

解决宝塔安装SG11报错

trees阅读(4014)

SourceGuardian 不兼容的加载程序版本。此受保护的脚本是用更新版本的sourceguardian编码的。请下载并安装最新的加载程序。中的错误代码[19]

宝塔面板自带的版本已经跟不上现在加密的步伐了,于是需要手动更新一下SourceGuardian

更新 /安装 SourceGuardian

浏览器中打开 https://www.sourceguardian.com/loaders/download.PHP
然后在微擎根目录新建文件名为test.PHP文件,代码如下;

<?php
    echo phpinfo();
?>

然后把详细网址写到这个框框里,如下图所示;回车然后就会自动判断你的服务器该安装那个版本;
SG11 更新安装界面.pngSG11 更新安装界面.png
在线的检查脚本会根据 phpinfo 的信息,提取到 php 版本信息和扩展路径,然后提示你需要的操作。例如它提示我 extension_dir 应设置为绝对路径而非相对路径:
SG11 路劲检测.pngSG11 路劲检测.png
那就改呗,在 PHP.ini 中找到 extension_dir,将原来的相对路径 ./ext 改为绝对路径。重启 Apache 然后重新执行检测:
SG11更新.pngSG11更新.png

到这一步它提示我需要:

下载 ixed.5.6.win
安装到 php 扩展的 ext 目录
在 php.ini 中加载它:extension=ixed.5.6.win
重启 Apache
全部修改完成后,在 phpinfo 看到了 SourceGuardian 的相关信息,说明扩展已经生效了:

最后

建议大家使用PHP还是不要运行在win环境,大大小小的坑很多,需要自己踩,确实浪费时间。
另外安装了SG11扩展后,要重启一下PHP,不知道的就重复服务器吧。

高质量原创文章对未来seo优化是否有干涉?

trees阅读(494)

这是为什么呢?首先,为什么搜索引擎不收录原创文章呢?事实上,这就是其他人在优化方面做得很好的原因。最大的原因是搜索引擎不抓取网页,因为内容的质量不符合标准,这将在后面详细解释。原创的文章仍然是优化的主导部分,…

seo优化过程中,原创的高质量内容是必不可少的,但是很多SEOer会遇到虽然他们写的原创内容但长期没有收录的情况。这是为什么呢?原始内容的质量不高,还是原始内容对搜索引擎没有吸引力呢?下面的小编将向您详细解释其中的原因。

首先,为什么搜索引擎不收录原创文章呢?其中的原因是什么呢?

1、网站是新站

对于一个新的网站来说,达到秒收的效果通常是有点困难的。就像刚坠入爱河一样,你才刚刚接触女孩子,就想马上约人家开房,想起来都是有点不可能的。许多朋友总是认为他们的网站已经过了新站期。一般来说,在六个月内的都被称为一个新站。如果你的网站上线还没达到六个月,收录慢是非常正常的。不要太担心。坚持做正确的事情来提高百度排名就好。

高质量原创文章对未来seo优化是否有干涉?插图

如何缩短新站的评审周期?许多人经常想知道为什么其他网站比我晚上网,但是收藏比我早。事实上,这就是其他人在优化方面做得很好的原因。那么,如何为新电台加快文章收集速度呢?

第二,原创文章的方向还是未来内容占主导地位嘛?

当许多人发现他们的原创文章没有被收录后,他们就放弃了更新原创文章的操作。事实上,在运营时,原创内容仍然是百度搜索引擎最喜欢的搜索引擎优化东西。然而,你有没有想过你的原创内容是否符合互联网用户的胃口,是自娱自乐的写作,还是供用户作为学习参考的内容?最大的原因是搜索引擎不抓取网页,因为内容的质量不符合标准,这将在后面详细解释。

此外,也有一些站长看到别人的网站很好地收录内容,所以他们也自己收集内容。最终的结果是他们网站的评价值大大降低,最终的收录成了一个难题。然而,原创的文章仍然是优化的主导部分,这是毫无疑问的搜索引擎优化排名培训。

日漫Hello World 你好世界 | 在线观看

trees阅读(3250)

https://assets.zhuchunshu.com/20200503/1/5eae8ccf56f91CLSUFF截屏2020-05-03下午5.19.46.png
《HELLO WORLD》是伊藤智彦执导,野崎窗编剧,堀口悠纪子角色设计,Graphinica制作的原创动画电影。 [1] 作品是以2027年的日本京都为舞台的SF爱情故事。
2019年9月20日于日本公映。 [2] 中国香港由巴福斯影业、太阳娱乐文化代理发行,于2019年10月10日公映。 [3] 中国台湾由车库娱乐代理发行,于2019年11月15日公映。 [4] 中国境内由中国电影集团公司进口、中国电影股份有限公司发行,将于2020年公映。 [5]

王者荣耀空白昵称代码生成软件

trees阅读(783)

王者荣耀空白昵称代码生成软件

软件介绍:

王者荣耀空白昵称代码生成是一款可能给你的王者荣耀网名生成空白昵称软件可以用来装x,在平时我们在王者荣耀看到别人的空白昵称是不是很羡慕自己也想要,但是网上的代码都修改不了,有了这款软件就能修改了。

采用最新的王者荣耀空白昵称修改方法,喜欢就下载吧。

下载链接

链接:https://pan.sirblog.cn/s/3ffmr60i 密码:zhuchunshu.com