0%

SFTP

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

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

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

阅读全文 »

Linux Terminal Proxy 代理配置

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

通用配置

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

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

问题

基础环境

1
2
3
系统:Windows WSL
工具:NVM (Node Version Manager)
版本:node-v12.20.1、npm-6.14.10

全局安装工具包时抛错 npm ERR! Error: EACCES: permission denied

阅读全文 »

说明

通常情况下,企业内部会维护一套 Yum Repository Mirrors,以便于快速的安装更新一些软件包。即使是在阿里云VPC环境下,也会有一些三方或自定义的软件包需要内部镜像源来管理。

针对这些需求,目前有三种镜像源的管理方式

  • rsync
  • Nexus
  • createrepo
阅读全文 »

概述

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 错误。

阅读全文 »

指令语法

1
proxy_pass URL;

URL 由三部分组成:

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

示例

1
2
3
4
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会传递给后端服务器。

阅读全文 »

location 指令用途

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

语法规则

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

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

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

阅读全文 »

GitHub Pages 博客

主要组件

Hexo 其实是一种静态站点生成器,也可以用 HugoJekyIIMkDocs 等其它静态站点生成器替代。更多生成器参见:Site Generators

博客示例:

Bind DNS 日志记录

语法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
logging {
# 定义 channel
[ channel channel_name {
( file path_name
[ versions ( number | unlimited ) ]
[ size size_spec ]
| syslog syslog_facility
| stderr
| null );

[ severity (critical | error | warning | notice | info | debug [ level ] | dynamic ); ]

[ print-category yes or no; ]
[ print-severity yes or no; ]
[ print-time yes or no; ]
}; ]

# 定义 category
[ category category_name {
channel_name ; [ channel_name ; ... ]
}; ]
...
};
阅读全文 »

Environment

1
2
3
Python:2.7.13
Pip:9.0.1
matplotlib:2.0.0 (pip install matplotlib)

Error Message

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> import matplotlib.pyplot
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/soft/python2/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/opt/soft/python2/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "/opt/soft/python2/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 6, in <module>
from six.moves import tkinter as Tk
File "/opt/soft/python2/lib/python2.7/site-packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/opt/soft/python2/lib/python2.7/site-packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/opt/soft/python2/lib/python2.7/site-packages/six.py", line 82, in _import_module
__import__(name)
File "/opt/soft/python2/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
阅读全文 »