Nginx转发两个后端服务,请求返回502,没有进入到后端服务,排查Nginx日志发现:

no live upstreams while connecting to upstream

造成该问题的原因:

转发到upstream两个节点的请求都出现了超时(upstream timed out (110: Connection timed out) while reading response header from upstream),Nginx认为upstream中的两个节点都挂掉了,无法使用,所以拒绝新请求的连接,返回502。

需要等待fail_timeout时间后,才能继续尝试转发,这是属于Nginx的被动健康检查机制。

- 阅读剩余部分 -

按照 基于Linux+Clash实现透明代理(TProxy)详细教程 搭建的透明代理主机,当作为网关使用的时候,进行scp时,出现网络中断,无法正常传输的问题。

现象

$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file                                                    0%    0     0.0KB/s   --:-- ETAConnection to 192.168.10.10 closed by remote host.
lost connection



$ scp 1Gb.file admin@192.168.10.10:/tmp/
admin@192.168.10.10's password:
1Gb.file                                                    1%   14MB  13.3MB/s   01:12 ETA


Timeout, server 192.168.10.10 not responding.
lost connection

ssh连接,作为透明代理,没有问题,一切正常。当进行scp的时候,就会中断。

- 阅读剩余部分 -

摘要

有台 Ubuntu 14.04 的机器,想要查看sshd登录日志,发现没有 /var/log/auth.log 日志文件,同时连 /var/log/syslog 日志文件都不存在,遂排查并处理该问题。

基本情况:

1.rsyslog服务正常启动

2.rsyslog配置了记录日志文件

3./var/log目录中,没有相关日志文件

原因:

/var/log 目录权限是root:root 0755,rsyslog服务配置的用户和组是 syslog:adm,导致无权限在/var/log目录创建相关日志文件。

解决方法:

更改目录所有者和组

sudo chown syslog.adm /var/log/

- 阅读剩余部分 -

一.Shell命令自动补全的实现

1.ip 命令的自动补全是如何实现的?

1.ip命令相关补全文件

/usr/share/bash-completion/completions/ip

2.加载流程

  1. 用户进入交互式bash(终端)
  2. ~/.bashrc 中加载 /usr/share/bash-completion/bash_completion
  3. /usr/share/bash-completion/bash_completion中定义了 _completion_loader函数
  4. 当对一个命令按TAB时,如果这个命令没有补全定义,会触发_completion_loader函数,然后从/usr/share/bash-completion/completions/<command> 查找对应的补全脚本并加载。
  5. 脚本只加载一次,一旦某个命令的补全脚本被加载,它就在当前 Shell 会话里生效,不会每次 TAB 都重新加载。

- 阅读剩余部分 -

一.FastAPI是什么

FastAPI 是一个用于构建 API 服务的高性能 web 框架。

需要使用 Python 3.6+,基于标准的 Python 类型提示。

1.关键特性

  • 快速:可与 NodeJSGo 比肩的极高性能(归功于 Starlette 和 Pydantic),是最快的 Python web 框架之一。
  • 高效编码:提高功能开发速度约 200% 至 300%。
  • 更少 bug:减少约 40% 的人为错误(开发者导致)。
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema

- 阅读剩余部分 -