Wayde's Blog

知识源于积累


  • 首页

  • 关于

  • 分类

  • 标签

  • 个人收藏

  • 归档

  • 搜索

Nginx 移动端自动适配

发表于 2018-05-13 | 分类于 Nginx

为更好提升移动端的用户体验,一般都会单独的开发一个专门给移动端用户访问的站点(如m.baidu.com)。当用户用移动终端访问站点时,自动跳转到m站点。

跳转规则既可以放在前端,由JS控制,也可以通过配置nginx,实现自动跳转。nginx方式减少了网络请求,更快。

那Nginx要如何配置呢?

常见的方案是,通过User-Agent判断是否移动设备,如果是则跳转到m站点。可是移动终端类型那么多,要全部自己写也是挺麻烦的。还好有个检测移动浏览器的开源项目Detect Mobile Browsers,直接拿过来用就好了。

阅读全文 »

HTTP状态码(HTTP Status Code)

发表于 2018-05-03 | 分类于 Other

1xx-信息

信息,服务器收到请求,需要请求者继续执行操作

状态码 名称 说明
100 Continue 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101 Switching Protocols 服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
阅读全文 »

Nginx 常用命令和配置

发表于 2018-04-27 | 分类于 Nginx

Nginx 介绍

Nginx(发音同engine x)是一款免费的开源软件,由俄罗斯人伊戈尔·赛索耶夫2004年首次公开发布。

Nginx是一款面向性能设计、异步框架的Web服务器,支持反向代理,负载均衡和HTTP缓存。

Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。

在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

Nginx在官方测试的结果中,能够支持五万个并行连接,而在实际的运作中,可以支持二万至四万个并行链接。

Nginx 常用命令

启动服务

$ [sudo] /usr/sbin/nginx -c /etc/nginx/nginx.conf

阅读全文 »

Supervisor 入门教程

发表于 2018-04-25 | 分类于 Other

Superviosr 介绍

Supervisor是一款用采用Client/Server架构、开源(github地址)的进程监控管理工具。

Supervisor稳定、简单、高效、可扩展、兼容性好,可以在大部分类Unix系统(Debian、Solaris、Mac OS、FreeBSD等)上使用(不支持Windows,可用NSSN替代)。

Supervisor可以很方便的管理批量进程,不仅支持启动、重启、关闭、重载,还支持监控进程,进程意外僵死后可自动拉起。

Supervisor虽然是用Python开发,但是可以用来管理任意进程,而不仅仅是Python进程。

Supervisor目前最新版本3.3.4,暂不支持Python 3,不过即将推出的4.0版本将会支持Python3.4+。

Supervisor由以下4部分组成:

  • supervisord

    supervisord是supervisor的后台服务。它负责启动supervisor管理的子进程、响应来自client的请求、重启闪退或异常退出的子进程、把子进程的stderr或stdout记录到日志文件中、生成和处理Event等。

  • supervisorctl

    supervisorctl相当于supervisor的客户端。它有一个类shell的命令行界面,可以通过命令查看、启动、停止、重启子进程,supervisorctl不仅可以通过UNIX socket连接本机的supervisord管理进程,还可以通过TCP socket连接远程的supervisord管理进程。supervisorctl和supervisord之间的通信,是通过xml_rpc完成的,相应的配置在[supervisorctl]块里面。

  • Web Server

    Web Server主要可以在界面上管理进程,Web Server其实是通过XML_RPC来实现的,可以向supervisor请求数据,也可以控制supervisor及子进程。配置在[inet_http_server]块里面。

  • XML-RPC Interface

    supervisorctl和Web Server通过XML-RPC接口调用supervisord,实现进程的管理。当然你也可以在你自己的服务里调用这些XML-RPC接口,来管理子进程。

阅读全文 »

Windows 常用命令(类比Linux)

发表于 2018-04-24 | 分类于 Windows

Windows命令与Linux命令的差异

Windows大部分命令都不区分大小写,Linux命令区分大小写。

Windows下斜杠”/“表示参数(如cmd /?),反斜杠”\”表示本地路径(如c:\Users\wayde\Desktop)。

Linux下斜杠”/“表示路径,反斜杠”\”表示转义。

注: 由于网络使用Unix标准,所以网络路径都是用斜杠“/”

阅读全文 »

Ubuntu 16.04 搭建Samba服务

发表于 2018-04-23 | 分类于 Ubuntu

Samba介绍

Samba,是种用来让UNIX系列的操作系统与Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做链接的(自由软件)。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站(Domain Controller)以及加入Active Directory成员。简而言之,此软件在Windows与UNIX系列操作系统之间搭起一座桥梁,让两者的资源可互通有无。

Samba能够为选定的Unix目录(包括所有子目录)创建网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。

阅读全文 »

NSSM介绍

发表于 2018-04-21 | 分类于 Windows

NSSM介绍

NSSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像windows服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。不仅支持图形界面操作,也完全支持命令行设置。

NSSM用法

打开下载页面,下载最新版(当前为2.24),下载完成后解压到某个路径,然后将win64/win32文件夹路径(D:\download\nssm-2.24\nssm-2.24\win64)添加到环境变量Path即可。

阅读全文 »

Windows平台下以守护进程方式运行Celery

发表于 2018-04-21 | 分类于 Celery

介绍

最近有个需求,需要在Windows环境部署一个Celery任务。为了让程序稳定运行,对外提供服务,需要以守护进程方式运行Celery任务。之前的项目都是运行在Linux环境,Celery任务也都是用Supervisor管理进程的,但是Supervisor不支持Windows环境,因此研究了Windows环境下以守护进程方式运行Celery的几种实现方案。

一番Google之后,了解到有以下4种方案:

  1. NSSM

    NSSM是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,使之像windows服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。不仅支持图形界面操作,也完全支持命令行设置。

    推荐,本文就采用的这种方案

    更多NSSM介绍及相关用法请参考NSSM介绍

  2. Forever

    Forever 是一种简单的命令行界面工具,用于确保特定脚本持续(永久)运行。Forever 的简单界面使其成为运行 Node.js 应用程序和脚本的较小部署的理想选择。

    经过一番折腾后,发现forever可以管理直接运行的Python脚本,但是运行celery worker时,无法设置复杂的参数。

  3. Task Scheduler

    Windows自带的计划任务,celery 官网有提到这种方案Windows Tip: Run applications in the background using Task Scheduler,但是尝试未果。

  4. 自己写Python守护进程脚本

    由于时间关系,此方案未尝试,有兴趣可以参考下面的文章。

    Python 编写Windows服务程序:将Python作为Windows服务启动
    Python实例浅谈之五Python守护进程和脚本单例运行
    python 版的守护进程和Windows服务

阅读全文 »

Windows 10 KMS激活

发表于 2018-04-20 | 分类于 Windows

KMS介绍

大量授权密钥(Volume License Key,简称VLK)是软件公司使用的一个词汇,用户购买批量授权,便会获得一产品密钥,该密钥可安装于多部电脑。换言之,企业可于多台电脑使用同一产品密钥,而不需为每台电脑输入不同的密钥。这种授权方式通常只给商业机构、政府和教育机构,价格会因购买数量、类型和使用条款而不同。

从Windows Vista开始,Microsoft使用MAK(Multiple Activation Keys)和KMS(Key Management Server)取代旧的大量授权密钥。客户端需要每180天连回KMS。

阅读全文 »

修改iTunes备份目录路径释放C盘空间

发表于 2018-04-14 | 分类于 Windows

iTunes默认的备份路径就在C盘,而且不可设置

iTunes默认的备份路径就在C盘,而且不可设置。

修改步骤:

  1. 建立实际存储文件目录(E:\Apple Computer\iTunes\MobileSync)
  2. 下载Junction并解压(E:\Soft Download\Junction)
  3. 管理员身份运行cmd
  4. junction64.exe "c:\Users\zhangw\AppData\Roaming\Apple Computer\MobileSync" "e:\Apple Computer\iTunes\MobileSync"
阅读全文 »
123…14
Wayde

Wayde

140 日志
14 分类
112 标签
GitHub StackOverflow Instagram
© 2012–2022 Wayde
粤ICP备2020135844号