Arno 发布于 04月08, 2021

Configure SFTP Service

SFTP

SFTP (SSH File Transfer Protocol)是一种安全的文件传输协议。它通过SSH协议运行。它支持SSH的完整安全和身份验证功能。

SFTP已几乎取代了旧版FTP作为文件传输协议,并且正在迅速取代FTP/S。它提供了这些协议提供的所有功能,但更安全,更可靠,配置更简单。

SFTP还可以防止密码嗅探和中间人攻击。它使用加密和加密哈希函数保护数据的完整性,并对服务器和用户进行身份验证。

阅读全文 »

Arno 发布于 04月06, 2021

Linux Terminal Proxy 代理配置

如果需要在 Terminal 中使用代理,则需配置一些代理变量来实现。此方式适用于所有 Linux 发行版、MacOS 等类Unix系统。

通用配置

如果代理启用了身份认证,需要提供账号密码

  • 在当前 BASH 终端中输入可临时生效
  • 将内容写入 ~/.bashrc 中,对当前用户生效
  • 将内容写入 /etc/profile 中,对所有用户生效
  • 在脚本中写入,仅对脚本中的请求生效

阅读全文 »

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

阅读全文 »