《Nginx Cookbook 2019》中文版第二章高性能负载均衡

2.0 Introduction-简介

Today’s internet user experience demands performance and uptime. To achieve this, multiple copies of the same system are run, and the load is distributed over them. As the load increases, another copy of the system can be brought online. This architecture technique is called horizontal scaling. Software-based infrastructure is increasing in popularity because of its flexibility, opening up a vast world of possibilities. Whether the use case is as small as a set of two for high availability or as large as thousands around the globe, there’s a need for a load-balancing solution that is as dynamic as the infrastructure. NGINX fills this need in a number of ways, such as HTTP, TCP, and UDP load balancing, which we cover in this chapter.

当今的互联网用户体验要求性能和时时在线。为了达到这个目的,同一个系统的多个副本需同时运行,并且将负载分布在这些副本上。随着负载的增加,系统的另一个副本可以联机。这种架构技术被称为水平拓展。基于软件的基础设施因其灵活性而越来越受欢迎,开辟了一个广阔的无限可能的世界。对于高可用性而言,用例小到两个,还是在全球范围内成千上万个,都需要一个与基础架构一样动态的负载均衡解决方案。NGINX以多种方式满足这一需求,我们在本章中将讨论超文本传输协议(HTTP)、TCP和UDP的负载平衡。

阅读更多

《Nginx Cookbook 2019》中文版第一章基础知识

0.0 最前面话

最近看了一本关于NGINX的电子书,编排形式比较新颖,通过一问一答的方式来告诉读者如何快速上手NGINX,以及处理真实项目中的需求。书的内容简练概括,但涉及面较多,内容有4层和7层负载均衡,A/B测试,自动化部署,认证,Http2,debug和调优等,有些示例可以拿来直接用。由于原书暂无中文译本,姑且尝试翻译一下,90%机器翻译,10%人工修正。原书信息如下:

1.0 Introduction-简介

To get started with NGINX Open Source or NGINX Plus, you first
need to install it on a system and learn some basics. In this chapter
you will learn how to install NGINX, where the main configuration
files are, and commands for administration. You will also learn how
to verify your installation and make requests to the default server.

要开始使用开源版NGINX或NGINX Plus,你首先需要将在操作系统里面安装上并学习一些相关的基础知识。在本章中,你将学习如何安装nginx,其主要配置文件所在位置,以及管理命令。你还将学习如何验你的安装并向默认服务器发送请求。

阅读更多

Ansible如何通过跳板机连接目标机器

Ansible是配置管理工具,能够自动化部署,管理服务器。在实际工作中,我会用ansible来进行项目依赖的服务部署,比如nginx服务器,redis等部署。

在生产环境下,多台服务器往往部署在一个局域网内,没有公网ip,也不会对外暴露端口,这就导致本地不能通过ssh直接连接生产服务器。它需要连接到跳板机后然后再进行生产服务器操作。通过跳板机操作一来更安全,二来可以更好的监控和权限控制,但如果想要本地使用ansible对服务器进行操作,就被限制住了。此时我们可以更改ssh配置进行处理,已达到本地机器"直接"连接远程生产机器的目的。

阅读更多

Tmux——终端复用神器

Tmux是终端复用器(terminal multiplexer)的缩写。通过启动Tmux会话,然后在该会话中打开多个窗口,并且分屏形成矩形窗格,执行不同操作,能极大提高终端操作效率。tmux支持的特性有:

  1. 支持创建任意数量的窗口(window)
  2. 支持同一个窗口创建任意数量的窗格(panel)
  3. 支持垂直或水平分割窗口,并可以任意调整窗格大小
  4. 支持会话分离和重连
  5. 允许用户之间进行会话分享

阅读更多

Supervisor快速使用指南

简介

Supervisor是用于监控和管理类UNIX操作下进程的C/S系统。Supervisor不是作为进程id为1的init的替代,它只是用来控制应用程序的进程,它会跟其他进程开机启动时候一样,通过pid为1的进程启动。为了高可用,它本身也需要监控。

Supervisor的构成有4部分:

  • supervisord

    supervisord是Supervisor的守护进程,是C/S中S端,它响应客户端的命令,监控,重启奔溃异常退出的子进程,以及记录子进程的stdoutstderr等。supervisord默认配置文件是/etc/supervisord.conf

  • supervisorctl

    supervisorctl是Supervisor的命令行客户端,supervisorctl工作原理是发送命令给supervisord,来对其他进程的启动,关闭等操作

  • Web Server

    Supervisor也支持web形式客户端

  • XML-RPC Interface

    Supervisor提供了XML-RPC接口,通过此接口,我们可以询问和控制supervisor

阅读更多

PHP7各个版本新增特性

PHP从5.6 跳过6直接来到7,带来新的语言特性,更带来性能很大飞越。根据w3techs统计截止截止2019年5月18月有79%网站使用PHP做为服务端开发语言,这些网站使用的PHP版本统计如下:

阅读更多

Jupyter Notebook部署

Jupyter Notebook 是科学计算必备工具之一,它是一个开源的web应用程序,允许你创建和共享实时代码,可以用来进行数据清理和转换、统计建模、数据可视化、机器学习等等工作。

下面是使用supervisour和nginx来部署公开jupyter notebook服务过程。

安装jupyter notebook

推荐python3环境下安装jupyter。我系统是Ubuntu 18.04里面内置了python3,所以直接安装jupyter,如果系统python版本是python2.7,可以使用virtualenvwrapper进行多版本python管理。

下面使用pip来安装jupyter notebook

1
2
sudo apt-get install python3-pip // 安装pip3
sudo pip3 install jupyter // 安装jupyter

阅读更多

Spark简介PPT

9月份时候由于工作中涉及到大数据统计分析内容,研究了spark使用,10月份时候把研究内容在小组内简单做了一次分享。现在把分享的PPT贴出,分享过程中也涉及到真实项目使用spark演示,这部分为未贴出。

阅读更多

Docker使用过程中问题汇总(持续更新中)

下面是我在使用docker过程中遇到的一些问题以及解答,现记录下来备查。

1. 为什么有很多<none>:</none>镜像,有的删除不掉,有些却删除不掉?

我们执行命令docker images -a有时候会发现不少:镜像,使用docker rmi image_name删除这些none镜像时候,有时候能够成功,有时候却不能成功。这究竟为什么?

我们知道镜像是分层的,上面一层依赖下一层,下一层是上一次的父镜像层。就像下面这样:

我们可以通过docker inspect查看镜像ID 和父层镜像ID

阅读更多