AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-1816

cherouvim's questions

Martin Hope
cherouvim
Asked: 2021-05-13 05:39:27 +0800 CST

解禁后fail2ban“过期bantime”

  • 2

我有这个针对 apache 日志的 fail2ban 监狱(目前有一些小值,所以我可以试验):

enabled = true
maxretry = 3
bantime = 10
findtime = 5
action = 429-ban

我使用ab(并发:10,请求:10000)对其进行压力测试,我的自定义过滤器几乎立即捕获“高”流量并禁止 IP。

问题是 10 秒后,禁令到期,如果我继续运行ab,fail2ban 日志现在充满:

Ignore 192.168.XX.XX, expired bantime
Ignore 192.168.XX.XX, expired bantime
Ignore 192.168.XX.XX, expired bantime

从那时起,很长一段时间内,没有出现任何禁令。同时fail2ban日志显示处理,即使我停止ab。如果我等待足够长的时间并确认 fail2ban 日志活动停止,那么重新启动压力测试会有效地禁止 IP。

我的问题是:

  • 这expired bantime到底是什么意思?
  • 即使压力测试ab很久以前就停止了,fail2ban 似乎仍会继续处理内容。是否有可能在fail2ban上存在某种我可以减少的缓冲区,这可能也可以解决我的第一个问题?
fail2ban
  • 1 个回答
  • 255 Views
Martin Hope
cherouvim
Asked: 2020-02-15 00:20:48 +0800 CST

如何响应特定 URL 的“410 Gone”

  • 1

出于 SEO 原因,我想为某些特定的 URL 返回“410 Gone”,我将使用path_begor匹配这些 URL path_sub。

我尝试了以下方法:

frontend foo
    mode http
    bind :80

    # 1) this works but I cannot use 410
    http-request deny deny_status 408 if { path_sub bar }

    # 2) this doesn't work at all no matter the code
    http-response set-status 408 if { path_sub test }

我不能在第一个指令中使用 410 ,http-request因为https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#errorfile:

<code> 是 HTTP 状态码。目前,HAProxy 能够生成代码 200、400、403、405、408、425、429、500、502、503 和 504。

带有 的第二个指令http-response没有任何效果。

我如何退回 410?

haproxy
  • 1 个回答
  • 286 Views
Martin Hope
cherouvim
Asked: 2018-04-13 04:14:50 +0800 CST

haproxy stats 后端限制的解释

  • 6

我的相关部分/etc/haproxy/haproxy.cfg是:

global
    maxconn 30000
    ...

defaults
    ...

frontend frontend_for_all_sites
    maxconn 22000
    mode http
    bind *:80

    acl acl_hostname_www hdr_dom(host)    www.example.com
    acl acl_hostname_static hdr_dom(host) static.example.com
    use_backend www_backend      if acl_hostname_www
    use_backend static_backend   if acl_hostname_static

backend www_backend
    server www 127.0.0.1:9090 maxconn 500

backend static_backend
    server s 127.0.0.1:8080 maxconn 5000

所以,我有 2 个后端,每个后端只有 1 个,没有负载平衡,只是根据请求的主机名将请求代理到不同的后端。

在www后端我将 maxconn 设置为 500,在static后端我将其设置为 5000。

统计信息页面现在如下所示:

在此处输入图像描述

我的问题是两个后端的 2200 的“后端限制”代表什么?我知道这个值是 22000 maxxconn on 的 10% frontend_for_all_sites。这 2200 是否意味着后端将处理的最大连接数为 2200 及以上 haproxy 将返回 503?

haproxy
  • 1 个回答
  • 6756 Views
Martin Hope
cherouvim
Asked: 2017-08-18 05:33:21 +0800 CST

我怎样才能阅读旧的清漆日志?

  • 1

在/var/log/varnish/我有一些旧的清漆日志,由varnishlog它们产生,由于logrotated,现在是 gz 格式:

-rw-r--r--  1 varnishlog varnish 143068514 Aug 10 23:59 varnish.log.2017-08-10.gz
-rw-r--r--  1 varnishlog varnish 156373518 Aug 11 23:59 varnish.log.2017-08-11.gz
-rw-r--r--  1 varnishlog varnish 134255825 Aug 12 23:59 varnish.log.2017-08-12.gz
-rw-r--r--  1 varnishlog varnish 156992529 Aug 13 23:59 varnish.log.2017-08-13.gz
-rw-r--r--  1 varnishlog varnish 176751837 Aug 14 23:59 varnish.log.2017-08-14.gz
-rw-r--r--  1 varnishlog varnish 155948012 Aug 16 00:01 varnish.log.2017-08-15.gz
-rw-r--r--  1 varnishlog varnish 169977134 Aug 17 00:01 varnish.log.2017-08-16.gz

我已经将它们提取到另一个位置并尝试通过head/查看它们,more但它们看起来是二进制的。

所以我然后尝试varnishlog使用以下任一参数打开它们:

[-N filename]             VSM filename
[-r filename]             Binary file input

但这并没有给我:

Can't open log - retrying for 5 seconds

和:

Can't open log file (Not a VSL file:

关于如何从清漆中检查这些历史日志的任何想法?

ps 我用varnish-4.1.1

logging
  • 3 个回答
  • 2408 Views
Martin Hope
cherouvim
Asked: 2017-07-30 21:08:01 +0800 CST

#!/bin/sh vs #!/bin/bash 以获得最大的可移植性

  • 37

我通常使用 Ubuntu LTS 服务器,从我理解的符号链接/bin/sh到/bin/dash. 许多其他发行版虽然符号链接/bin/sh到/bin/bash.

据我了解,如果脚本#!/bin/sh在顶部使用它可能不会在所有服务器上以相同的方式运行?

当人们希望这些脚本在服务器之间具有最大的可移植性时,是否有关于使用哪个 shell 来执行脚本的建议做法?

linux
  • 3 个回答
  • 6388 Views
Martin Hope
cherouvim
Asked: 2017-06-17 02:01:38 +0800 CST

如何重定向请求的方案(http 或 https)

  • 1

我正在根据 acl 条件重定向到某个域,但我希望用户最终取决于http或https取决于他们请求的方案/协议。我已经设法用下面显示的 2 行来做到这一点,但我想将它们转换为 1 行:

http-request redirect code 301 location http://www.example.com%[url] if acl_whatever !{ ssl_fc }
http-request redirect code 301 location https://www.example.com%[url] if acl_whatever { ssl_fc }

理想情况下,我想重定向到类似%[scheme]://www.example.com%[url]但%[scheme]不存在的东西。

是否有可以返回的变量或函数,http或者https我不必重复规则两次?也许通过某种方式设置一个包含该方案的变量,或者通过使用其值为%[ssl_fc]0 或 1?

haproxy
  • 2 个回答
  • 2116 Views
Martin Hope
cherouvim
Asked: 2017-03-25 04:03:53 +0800 CST

HAProxy Stats 页面后端队列值说明

  • 1

如下图所示,我有一个带有 2 个服务器的 HAProxy 后端,这些服务器具有以下设置:

maxconn 64 check inter 5s fastinter 2s downinter 2s

在此处输入图像描述

我的问题是关于Queue专栏的。如何指定后端队列的限制?为什么Backend底部的,分别显示11whenapi-1和api-2show 22and的值18?在我的情况下,这个数字11代表什么?

haproxy
  • 1 个回答
  • 2754 Views
Martin Hope
cherouvim
Asked: 2016-12-28 06:24:51 +0800 CST

Apache 在 SSL 终止代理后面重定向

  • 1

我在以下重定向<VirtualHost *:80>:

RewriteRule ^/old-url$  /new-url  [R=301,L]
RewriteRule ^/foo$      /bar      [R=301,L]
...

在 apache 前面,我有 haproxy,监听 80 和 443,后者执行 SSL 终止,并且:

http-request set-header X-Forwarded-Port %[dst_port]
http-request set-header X-Forwarded-Proto https if { ssl_fc }

我对重定向的问题是:

  1. http://example.com/foo正确重定向到http://example.com/bar
  2. https://example.com/foo错误地重定向到http://example.com/bar

如何确保http重定向到http和https到https?请注意,我想避免两次编写重定向规则。我如何使用X-Forwarded-ProtoorX-Forwarded-Port重定向到正确的方案?

http apache-2.2 redirect https reverse-proxy
  • 1 个回答
  • 2369 Views
Martin Hope
cherouvim
Asked: 2016-11-05 01:08:22 +0800 CST

dig 有效,但 ping 无法解析主机

  • 4

我已经为主机(admin.example-preprod.foobar.it使用 IP 100.100.100.100)配置了 DNS 设置,但它并不能从我尝试的每台服务器上解析(它适用于某些服务器)。

例如,我在使用以下 3 个 DNS 服务器的服务器上:

foobar@server:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 200.200.200.1
nameserver 200.200.200.2
nameserver 200.200.200.3

dig适用于所有人。

第一的:

foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.1

; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6540
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it.        IN      A

;; ANSWER SECTION:
admin.example-preprod.foobar.it. 86400 IN A      100.100.100.100

;; AUTHORITY SECTION:
foobar.it.               86400   IN      NS      qwert.foobar.it.
foobar.it.               86400   IN      NS      ns0.xname.org.
foobar.it.               86400   IN      NS      ns1.xname.org.

;; ADDITIONAL SECTION:
qwert.foobar.it.         86400   IN      A       200.200.200.1

;; Query time: 46 msec
;; SERVER: 200.200.200.1#53(200.200.200.1)
;; WHEN: Fri Nov 04 10:35:46 EET 2016
;; MSG SIZE  rcvd: 156

第二:

foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.2

; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40127
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it.        IN      A

;; AUTHORITY SECTION:
foobar.it.               85817   IN      SOA     qwert.foobar.it. webmaster.foobar.it. 2016092901 10800 900 1814400 10800

;; Query time: 3 msec
;; SERVER: 200.200.200.2#53(200.200.200.2)
;; WHEN: Fri Nov 04 10:36:05 EET 2016
;; MSG SIZE  rcvd: 111

第三:

foobar@server:~$ dig admin.example-preprod.foobar.it @200.200.200.3

; <<>> DiG 9.9.5-3ubuntu0.7-Ubuntu <<>> admin.example-preprod.foobar.it @200.200.200.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2392
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;admin.example-preprod.foobar.it.        IN      A

;; ANSWER SECTION:
admin.example-preprod.foobar.it. 86400 IN A      100.100.100.100

;; AUTHORITY SECTION:
foobar.it.               86400   IN      NS      qwert.foobar.it.
foobar.it.               86400   IN      NS      ns1.xname.org.
foobar.it.               86400   IN      NS      ns0.xname.org.

;; ADDITIONAL SECTION:
qwert.foobar.it.         81845   IN      A       200.200.200.1

;; Query time: 2309 msec
;; SERVER: 200.200.200.3#53(200.200.200.3)
;; WHEN: Fri Nov 04 10:35:56 EET 2016
;; MSG SIZE  rcvd: 156

但是,当我尝试 ping 时,它给了我unknown host:

foobar@server:~$ ping admin.example-preprod.foobar.it
ping: unknown host admin.example-preprod.foobar.it

这怎么可能,我应该在哪里解决问题?

domain-name-system
  • 3 个回答
  • 10248 Views
Martin Hope
cherouvim
Asked: 2016-08-04 00:18:43 +0800 CST

在 use_backend 语句中组合 ACL

  • 2

我想在 haproxy (src和path_beg) 中结合 2 种不同类型的 acl 来决定使用哪个后端。

我尝试了以下无效语法:

acl my_ip src 192.168.0.50
acl api_path path_beg /api
use_backend private_backend if my_ip AND api_path
use_backend public_backend if api_path

第三AND行中的不起作用。

我还尝试了以下无效语法:

acl my_ip_and_api_path src 192.168.0.50 path_beg /api

path_beg在和 IP 之后使用src不起作用。

haproxy
  • 1 个回答
  • 4716 Views
Martin Hope
cherouvim
Asked: 2016-02-20 06:43:43 +0800 CST

基于时间(计划)的 haproxy 后端备份设置

  • 0

我有 2 个网络服务器:A并且B在它们之前有 haproxy。我想用A作主服务器和B备份/故障转移服务器。

我想知道是否有可能:

  • B如果A在办公时间内停机,则不会自动切换到
  • 在非办公时间自动切换到B以防万一A

那可能吗?

haproxy
  • 1 个回答
  • 391 Views
Martin Hope
cherouvim
Asked: 2014-02-11 23:40:26 +0800 CST

正好 90 秒重新启动 apache httpd

  • 2

我有一个 openSUSE 13.1 VM(主机运行 Virtualbox 4.2.18,也在 openSUSE 13.1 上)并且重新启动 httpd(Apache/2.4.6)总是需要 1.5 分钟:

foobar:~ # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    1m30.778s
user    0m0.004s
sys     0m0.000s

立即随后重新启动是正常的(非常快):

foobar:~ # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    0m1.023s
user    0m0.004s
sys     0m0.000s

5 分钟后,重新启动时间再次精确到 90 秒:

foobar:/tmp # time /etc/init.d/apache2 restart
redirecting to systemctl restart apache2.service

real    1m30.684s
user    0m0.000s
sys     0m0.000s

到目前为止我一直在寻找什么:

  • top虽然 apache 正在重新启动并没有显示很多(~0% 的使用率)。
  • netstat也没有显示出与外界的任何联系。

请注意,这是一个当前流量为 0 且内存和磁盘中有大量可用 GB 的 VM。

我还发现“重启”的“停止”部分需要 90 秒。

知道为什么会发生这种情况,或者我接下来应该在哪里看?

编辑:我发现当stop需要 90 秒时,我始终会得到以下内容/var/log/apache2/error_log:

[core:notice] [pid 3179] AH00052: child pid 3203 exit signal Segmentation fault (11)
virtual-machines
  • 3 个回答
  • 2909 Views
Martin Hope
cherouvim
Asked: 2014-02-04 02:31:46 +0800 CST

apache httpd 每 24 小时重启一次

  • 9

我有一个 Apache/2.2.22 (Linux/SUSE),它每天同时自动重启。我没有配置为对任何用户执行此操作的 cron 作业。

我开始收集状态页面的详细快照,从中我发现:

Restart Time: Friday, 31-Jan-2014 12:15:03 EET
Restart Time: Saturday, 01-Feb-2014 12:15:04 EET
Restart Time: Sunday, 02-Feb-2014 12:15:05 EET
Restart Time: Monday, 03-Feb-2014 12:15:06 EET

从状态页面的微小快照可以看出,在重新启动之前没有发生重大流量。

对于每次重新启动,我都会得到以下/var/log/messages信息,而没有其他任何感兴趣的内容:

2014-02-03T12:15:02.576970+02:00 foobar systemd[1]: Reloading apache.
2014-02-03T12:15:03.225024+02:00 foobar start_apache2[15393]: Syntax OK
2014-02-03T12:15:03.298169+02:00 foobar systemd[1]: Reloaded apache.

任何想法为什么会发生这种情况或者我接下来应该在哪里看?

apache-2.2
  • 1 个回答
  • 3668 Views
Martin Hope
cherouvim
Asked: 2013-04-02 02:30:08 +0800 CST

当本地 DNS 启动时,40 个节点的网络速度大幅下降

  • 3

我们有一个包含约 40 个工作站(主要是 Windows)和几台服务器的局域网。它们都使用内部 DNS(196.168.0.4运行BIND 9.5.0-P2)和网关(192.168.0.1运行 OpenBSD 数据包过滤器),网关是充当路由器的本地 PC。

在过去的几个月里,在工作日的某些时间点,网络速度减慢到无法进行与互联网相关的任何事情的程度。在那些不好的时候,ping8.8.8.8会给出:

12:16:12.078: Timeout waiting for seq=11a1
12:16:13.484: From 8.8.8.8: bytes=60 SEQ=11a9 TTL=48 ID=0000 time=399.334ms
12:16:15.078: Timeout waiting for seq=11a4
12:16:15.437: From 8.8.8.8: bytes=60 SEQ=11ab TTL=48 ID=0000 time=355.409ms
12:16:18.078: Timeout waiting for seq=11a8
12:16:19.453: From 8.8.8.8: bytes=60 SEQ=11af TTL=48 ID=0000 time=376.317ms
12:16:21.078: Timeout waiting for seq=11aa
12:16:21.078: Timeout waiting for seq=11ac
12:16:21.390: From 8.8.8.8: bytes=60 SEQ=11b1 TTL=48 ID=0000 time=306.727ms
12:16:22.437: From 8.8.8.8: bytes=60 seq=11b2 TTL=48 ID=0000 time=364.351ms
12:16:23.453: From 8.8.8.8: bytes=60 seq=11b3 TTL=48 ID=0000 time=371.944ms
12:16:24.078: Timeout waiting for seq=11ad
12:16:24.078: Timeout waiting for seq=11ae
12:16:26.390: From 8.8.8.8: bytes=60 SEQ=11b6 TTL=48 ID=0000 time=307.729ms
12:16:27.078: Timeout waiting for seq=11b0
12:16:29.437: From 8.8.8.8: bytes=60 SEQ=11b9 TTL=48 ID=0000 time=361.575ms
12:16:30.078: Timeout waiting for seq=11b4
12:16:30.453: From 8.8.8.8: bytes=60 seq=11ba TTL=48 ID=0000 time=367.647ms
12:16:33.078: Timeout waiting for seq=11b5
12:16:33.078: Timeout waiting for seq=11b7

在那个确切的例子中,如果我关闭 DNS (at .0.4),那么几秒钟后网络的健康状况又会变得非常好:

12:47:43.046: From 8.8.8.8: bytes=60 seq=190b TTL=48 ID=0000 time=70.555ms
12:47:44.046: From 8.8.8.8: bytes=60 seq=190c TTL=48 ID=0000 time=82.684ms
12:47:45.046: From 8.8.8.8: bytes=60 seq=190d TTL=48 ID=0000 time=72.368ms
12:47:46.062: From 8.8.8.8: bytes=60 seq=190e TTL=48 ID=0000 time=84.310ms
12:47:47.046: From 8.8.8.8: bytes=60 seq=190f TTL=48 ID=0000 time=75.137ms
12:47:48.046: From 8.8.8.8: bytes=60 seq=1910 TTL=48 ID=0000 time=75.791ms
12:47:49.062: From 8.8.8.8: bytes=60 seq=1911 TTL=48 ID=0000 time=94.252ms
12:47:50.046: From 8.8.8.8: bytes=60 seq=1912 TTL=48 ID=0000 time=76.547ms
12:47:51.046: From 8.8.8.8: bytes=60 seq=1913 TTL=48 ID=0000 time=70.251ms
12:47:52.046: From 8.8.8.8: bytes=60 seq=1914 TTL=48 ID=0000 time=83.033ms
12:47:53.046: From 8.8.8.8: bytes=60 seq=1915 TTL=48 ID=0000 time=76.589ms
12:47:54.046: From 8.8.8.8: bytes=60 seq=1916 TTL=48 ID=0000 time=82.060ms

这是非常一致和可重现的。我 ping 8.8.8.8(谷歌的公共 DNS)是完全随机的,这只是我必须测试互联网连接的一种方式。我可能正在 ping 206.190.36.45(雅虎公共网站的 IP)。

DNS 不对外开放。因此,我认为可能有一个(或多个)工作站对 DNS 的使用非常糟糕(可能间接通过病毒),并用请求或其他东西淹没它。问题是我无法追溯。在0.4机器top上没有给我任何 CPU 可疑活动,并且在0.1(网关)上使用dst host 192.168.0.4in过滤pftop没有给我任何使用 DNS 的内部 IP。

我试过一个一个地拔掉工作站的以太网电缆,以找到一个可能有问题的工作站,但这个过程不是非常快速和准确,当网络稳定时,我不确定它是否是由于最后一个工作站造成的我拔掉了电源,还是网络又恢复正常了。

关于接下来要看的地方有什么想法吗?

networking
  • 3 个回答
  • 285 Views
Martin Hope
cherouvim
Asked: 2009-10-20 11:25:20 +0800 CST

在生产网络服务器上混合 rpm 和源安装

  • 1

在生产 Web 服务器上混合 rpm 和基于源的安装是否可以?还是最好完全采用一种或另一种方式?

多谢

linux
  • 4 个回答
  • 140 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve