Arno 发布于 02月20, 2021

nginx rewrite 详解

概述

NGINX 重写模块 ngx_http_rewrite_module 用于使用 PCRE正则表达式 更改请求URI,返回重定向,并有条件地选择配置。

主要的指令 break, if, return, rewrite, set

指令执行顺序:

  1. 按顺序执行 server 区块中的 rewrite 模块指令
  2. 如果发生 rewrite 地址重写,执行 location 匹配
  3. 按顺序执行 匹配 location 中的 rewrite指令

如果URI发生重写,就会重新循环执行1-3,直到找到真实存在的文件。

如果循环超过10次,则返回 500 Internal Server Error 错误。

阅读全文 »

Arno 发布于 02月20, 2021

nginx proxy_pass 详解

指令语法

proxy_pass URL;

URL 由三部分组成:

  • 协议 可以指定 http 或 https
  • 地址 可以指定 域名 或 ip 以及 可选端口
  • 可选的URI

示例

proxy_pass http://www.abc.com;
proxy_pass http://127.0.0.1:8000/uri/;

proxy_pass http://unix:/tmp/backend.socket:/uri/;

此外,可将地址指定为一个主机组 server group,使用 upstream 来定义主机组。

当使用 rewrite 在代理位置更改URI时(地址重写),则重写后的URI会传递给后端服务器。

阅读全文 »

Arno 发布于 01月01, 2021

nginx location 详解

location 指令用途

根据请求 URI 设置配置,进而对请求做不同的处理和响应。

语法规则

# 关键字    修饰符  匹配的前缀字符既URI { 要执行的操作 }
location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }

语法规则很简单,关键字location后跟可选的修饰符,后面是要匹配的前缀字符既URI,花括号中是要执行的操作。

location 一般定义在 server 区块中,也可以嵌套定义在 location 区块中,但命名 location 不可嵌套。

阅读全文 »

Arno 发布于 03月19, 2019

Python的迭代、可迭代对象、迭代器与生成器详解

iteration(迭代)

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

只要是可迭代对象(Iterable),就可以通过for循环来遍历,这种遍历我们称为迭代。

也就是说所有可作用于for循环的对象都是可迭代对象(Iterable)。

那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> isinstance(123,Iterable)            # Integer 不可迭代
False
>>> isinstance('abc',Iterable)          # String 可迭代
True
>>> isinstance([1,2,3],Iterable)        # List 可迭代
True
>>> isinstance(('a','b','c'),Iterable)  # Tuple 可迭代
True
>>> isinstance({'name':'Arno','Job':'Ops'},Iterable)    # Dictionary 可迭代
True

阅读全文 »

Arno 发布于 03月12, 2019

Centos YUM 源加速

基础源

# Centos
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# epel
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

阅读全文 »

Arno 发布于 11月13, 2018

FireKylin博客配置集成Gitalk评论插件

配置前准备

  • Github 账号
  • 创建 Repositorie 仓库用于评论系统
    • 评论内容会自动在仓库的Issue中生成
  • 创建 OAuth Apps 点击创建, 简要说明创建OAuth需要填写的内容:
    • Application name:应用的名字随便起,我定义的是blog
    • Homepage URL:填写你的博客域名
    • Application description:可选描述,可留空。
    • Authorization callback URL:填写你的博客域名

创建完OAuth Apps,就得到了 Client ID & Client Secret

阅读全文 »

Arno 发布于 06月16, 2018

Centos7.x 安装Openvpn详解

软件版本

  • Centos - 7.x
  • easy-rsa - 3.0.3
  • OpenVPN - 2.4.6

安装

建议安装启用epel源,采用yum的方式安装openvpn

yum install -y epel-release 
yum update -y
yum install -y openssl lzo pam openssl-devel lzo-devel pam-devel
yum install -y easy-rsa
yum install -y openvpn

阅读全文 »

Arno 发布于 05月03, 2018

探索 - Elastic Stack(ELK)实时日志分析平台

简介

  • Elasticsearch(更多详情) 搜索、分析和存储您的数据。
  • Kibana(更多详情) 实现数据可视化。
  • Logstash(更多详情) Logstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。
  • Beats(更多详情) Beats 是轻量型采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据。
  • X-Pack(更多详情) X-Pack 是集成了多种便捷功能的单个插件 — security、alerting、monitoring、reporting、graph 探索和 machine learning 。
  • ES-Hadoop(更多详情) Elasticsearch-Hadoop (ES-Hadoop) 连接器将 Hadoop 海量的数据存储和深度加工能力与 Elasticsearch 实时搜索和分析功能进行连接。它能够让您快速深入了解大数据,并让您在 Hadoop 生态系统中更好地开展工作。

阅读全文 »