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-94415

Selivanov Pavel's questions

Martin Hope
Selivanov Pavel
Asked: 2020-11-24 05:10:10 +0800 CST

nginx:结合 Expires 和 Cache-Control:不可变标头

  • 5

nginxexpires指令设置 2 个标头,Expires并且Cache-Control:

配置:

expires 1d;

标题:

Expires: Tue, 24 Nov 2020 12:51:31 GMT
Cache-Control: max-age=86400

我想保留Expires标题但也设置Cache-Control为public, max-age=86400, immutable. 但这会产生双Cache-Control标题:

配置:

expires 1d;
add_header Cache-Control "public, max-age=86400, immutable"

标题:

Expires: Tue, 24 Nov 2020 12:57:53 GMT
Cache-Control: max-age=86400
Cache-Control: public, max-age=86400, immutable

我不能只使用add_header Expires ...,因为它需要将来的确切时间,而不仅仅是秒数。

我尝试使用more_set_headersngx_headers_more模块,但指令Cache-Control设置的标头expires仍然存在。

有没有办法将正确的Expires标题与Cache-Controlset to结合起来immutable?

nginx
  • 2 个回答
  • 1644 Views
Martin Hope
Selivanov Pavel
Asked: 2020-09-12 06:12:00 +0800 CST

nginx:重定向到 if 块内的命名位置

  • 1

我在 nginx 中有一个位置,GET 和 POST 请求应该转到不同的命名位置。但是这段代码不起作用:

if ( $request_method = GET ) {
try_files /NON-EXISTENT @named_location_get
}

if ( $request_method = POST ) {
try_files /NON-EXISTENT @named_location_post
}

因为try_files里面是不允许的if。

有没有其他方法可以将请求重定向到指定位置,可以在里面工作if?

nginx
  • 1 个回答
  • 340 Views
Martin Hope
Selivanov Pavel
Asked: 2017-09-30 05:31:19 +0800 CST

cpio 在 Ubuntu Xenial 中错误地解压 initrd

  • 3

我正在尝试解压缩 initrd 图像:

# file /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic: ASCII cpio archive (SVR4 with no CRC)
# mkdir /tmp/initrd; cd /tmp/initrd
# cpio -i -d -H newc --no-absolute-filenames -F /boot/initrd.img-4.11.0-14-generic
194 blocks
# ls -R
.:
kernel

./kernel:
x86

./kernel/x86:
microcode

./kernel/x86/microcode:
GenuineIntel.bin

所以 cpio 只提取./kernel档案的子目录。但lsinitramfs在其中显示更多文件:

# lsinitramfs /boot/initrd.img-4.11.0-14-generic
/boot/initrd.img-4.11.0-14-generic
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
.
lib
lib/libnss_files.so.2
lib/cryptsetup

...

bin/egrep
init
run

如何获取所有存档内容?

initramfs
  • 1 个回答
  • 3485 Views
Martin Hope
Selivanov Pavel
Asked: 2014-04-01 00:15:20 +0800 CST

Puppet:替代参数事实上的名字

  • 2

这是自定义事实:

require 'etc'

Etc.passwd do |user|
    Facter.add("homedir_#{user.name}".intern) do
        setcode { user.dir }
    end
end

它确定用户主目录位置。

这是定义的类型:

define ssh_keys::key ($user) {

    $home = $::homedir_#{user}

    if $home != undef {

    file { "$home/.ssh/":
        ensure => directory,
    }

    file { "$home/.ssh/authorized_keys":
        ensure => file,
        source => "puppet:///modules/ssh_keys/$user",
        }
    }

}

它不适用于$::homedir_#{user},但适用于完全定义的事实:$::homedir_root。这里有什么问题?

puppet
  • 1 个回答
  • 203 Views
Martin Hope
Selivanov Pavel
Asked: 2013-09-16 02:44:58 +0800 CST

Linux qos:tc DRR qdisc 不起作用

  • 4

有 tc 队列规则 DRR(Dificite Round Robin) 。

它具有与 HTB 相同的功能,但不是使用充满令牌的存储桶,它只是为每个队列分配一些 Dificit Counter。在数据包发送时,DC 会减少数据包大小。如果 DC 小于数据包大小,DC 会增加队列的数量,并处理下一个队列。因此,它可以在不知道通道宽度(HTB 所需)的情况下按一定比例划分传出流量。见http://www.unix.com/man-page/linux/8/tc-drr/

设置:两台主机,172.16.1.1 è 172.16.1.2。

在第一台主机上,我们正在监听流量:

nc -l 8111
nc -l 8112

在第二台主机上,我们检查速度:

pv /dev/zero | nc 172.16.1.1 8111
pv /dev/zero | nc 172.16.1.1 8112

现在速度相等(pv 是允许通过管道测量数据传输速度的实用程序)。在第二台主机上添加 DRR(顶部的 HTB 用于模拟实际通道速度限制):

tc qdisc add dev eth0 root handle 1: htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
tc qdisc add dev eth0 parent 1:1 handle 2: drr
tc class add dev eth0 parent 2: classid 2:1 drr quantum 600
tc class add dev eth0 parent 2: classid 2:2 drr quantum 1400
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip dport 8111 0xffff classid 2:1
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip dport 8112 0xffff classid 2:2

速度保持不变:(我做错了什么?

linux
  • 2 个回答
  • 1418 Views
Martin Hope
Selivanov Pavel
Asked: 2012-11-27 10:48:21 +0800 CST

Zabbix 手动运行操作(远程命令)

  • 3

扎比克斯版本:2.0

有什么方法可以从 Web 界面手动运行操作(远程命令)?我没找到

zabbix
  • 1 个回答
  • 15430 Views
Martin Hope
Selivanov Pavel
Asked: 2012-09-26 11:46:22 +0800 CST

tc 看不到标记的数据包

  • 0

服务器有2个接口:

  • eth1,地址为 13.0.0.254/24
  • eth0 地址为 172.20.203.4/24。

它在这两个网络之间路由流量。任务是将这两个网络之间的带宽限制为 1Vbit/sec,但不限制服务器和网络主机之间的带宽(即限制所有通过 FORWARD 的数据包)

iptables -t mangle -A POSTROUTING -s 13.0.0.0/24 -d 172.20.203.0/24 -j MARK --set-mark 0x0001
iptables -t mangle -A POSTROUTING -s 172.20.203.0/24 -d 13.0.0.0/24 -j MARK --set-mark 0x0002

# eth1
tc qdisc add dev eth1 root handle 1:0 htb default 2

tc class add dev eth1 parent 1:0 classid 1:1 htb rate 1000mbps ceil 1000mbps
tc class add dev eth1 parent 1:1 classid 1:2 htb rate 999mbps ceil 1000mbps
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 1mbps

tc qdisc add dev eth1 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev eth1 parent 1:3 handle 3:0 sfq perturb 10

tc filter add dev eth1 parent 1:0 handle 1 fw flowid 1:3
tc filter add dev eth1 parent 1:0 handle 2 fw flowid 1:3

# eth0
tc qdisc add dev eth0 root handle 1:0 htb default 2

tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1000mbps ceil 1000mbps
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 999mbps ceil 1000mbps
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 1mbps

tc qdisc add dev eth0 parent 1:2 handle 2:0 sfq perturb 10
tc qdisc add dev eth0 parent 1:3 handle 3:0 sfq perturb 10

tc filter add dev eth0 parent 1:0 handle 2 fw flowid 1:3
tc filter add dev eth0 parent 1:0 handle 1 fw flowid 1:3

这是行不通的。如果我一开始使用它:

tc qdisc add dev eth1 root handle 1:0 htb default 3
tc qdisc add dev eth0 root handle 1:0 htb default 3

有用。所以问题出在过滤器设置中。

iptables -L -v -n -t mangle

显示,数据包正在通过 MARK 规则。我试图不在 POSTROUTING 中标记数据包,而是在 FORWARD 或 PREROUTING 中标记数据包 - 这也不起作用。我究竟做错了什么?

这是一些诊断:

# tc -s -d -r filter show dev eth0
filter parent 1: protocol [768] pref 49151 fw
filter parent 1: protocol [768] pref 49151 fw handle 0x1 classid 1:3
filter parent 1: protocol [768] pref 49152 fw
filter parent 1: protocol [768] pref 49152 fw handle 0x2 classid 1:3
# tc -s -d -r filter show dev eth1
filter parent 1: protocol [768] pref 49151 fw
filter parent 1: protocol [768] pref 49151 fw handle 0x2 classid 1:3
filter parent 1: protocol [768] pref 49152 fw
filter parent 1: protocol [768] pref 49152 fw handle 0x1 classid 1:3
linux
  • 1 个回答
  • 897 Views
Martin Hope
Selivanov Pavel
Asked: 2012-08-15 03:12:13 +0800 CST

OpenVPN 网桥:远程客户端看不到本地

  • 3

粗略的解决方案:

iptables -A FORWARD -i br200 -j ACCEPT
iptables -A FORWARD -o br200 -j ACCEPT

我仍然不明白发生了什么。桥接是在 L2 上进行的,iptables 不应接触该数据包。


配置:

Debian 6.0 压缩版

OpenVPN 2.2.1(来自反向移植)

我的任务是在数据链路层将远程客户端与本地网络连接起来,使它们处于同一个广播域中,并与本地客户端具有相同的网络/网络掩码。我正在使用 TAP 接口和桥接。所有相关接口(以太网(本地网络)、TAP(VPN)和网桥)都设置为混杂模式。网络/网络掩码是 172.20.200.0/24。服务器地址为 172.20.200.2。

本地客户端和远程客户端都可以ping通服务器,但是本地客户端和远程客户端之间没有连接。在服务器 ( ) 上使用数据包捕获程序 tsharktshark -i br200 -f "icmp"我看到从远程客户端到本地的 icmp 回显请求。在本地客户端上,我没有看到该请求(使用 Wireshark)。此外,本地客户端在arp缓存中有远程客户端arp地址,远程客户端在arp缓存中有本地客户端arp地址。所以,他们在数据链路网络层看到对方。但是他们就是不能互相ping通!两个客户端都禁用了防火墙和防病毒软件。问题出在哪里?我不明白。

/etc/网络/接口

auto bond0.200
  iface bond0.200 inet manual
        vlan_raw_device bond0
        up ifconfig bond0.200 0.0.0.0 promisc up

  auto br200
  iface br200 inet static
        bridge_ports bond0.200
        bridge_stp off
        bridge_fd 1
        address 172.20.200.2
        netmask 255.255.255.0
        post-up ifconfig br200 promisc

/etc/openvpn/server.conf

mode server
tls-server
port *****
proto tcp-server
dev tap200

script-security 2

up /etc/openvpn/bridge-start
down /etc/openvpn/bridge-stop

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#crl-verify crl.pem

auth sha1
cipher AES-256-CBC

; !!!
; comp-lzo

tun-mtu 1500
mssfix 1450

client-config-dir /etc/openvpn/ccd
ccd-exclusive

client-to-client
keepalive 10 120

persist-key
persist-tun

status /var/log/openvpn/server-arm.status
log-append  /var/log/openvpn/server-arm.log

/etc/openvpn/ccd/client-arm23

ifconfig-push 172.20.200.132 255.255.255.0

/etc/openvpn/网桥启动

#!/bin/bash
#set -x
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################

br="br200"
tap="tap200"

openvpn --mktun --dev $tap
ifconfig $tap 0.0.0.0 promisc up

brctl addif $br $tap

exit 0

/etc/openvpn/bridge-stop

#!/bin/bash
#set -x
####################################
# Tear Down Ethernet bridge on Linux
####################################

br="br200"
tap="tap200"

brctl delif $br $tap

openvpn --rmtun --dev $tap

exit 0

所有接口上的 MTU 和 MRU 一致。

bond0.200 是绑定设备上的 vlan 设备。也许这会以某种奇怪的方式导致错误?

openvpn
  • 1 个回答
  • 6203 Views
Martin Hope
Selivanov Pavel
Asked: 2012-05-24 05:50:49 +0800 CST

Mikrotik 脚本中的错误处理

  • 7

我在 RB493G 上安装了 RouterOS 5.14。我需要编写启动脚本

/tool fetch ...

fetch 的执行可能会出错,这没关系(URL 有时可能不可用)。脚本因错误而挂起。有什么办法可以忽略它吗?


解决方案:

[admin@Mikrotik] >> /system script
0 name=safe-fetch source=
:global done
:global url

/tool fetch $url
:Set done=true

1 name=test source=
:global done
:global url="google.com"

:set done false
:execute safe-fetch
:local counter 0
:while ( $done != true && $counter < 10 ) do={
    :set counter ($counter+1)
    :delay 0.2
    }

if ($done = "true") do={
   :put "Fetch OK"
   } else={
   :put "Fetch ERROR"
   }

警告:未记录使用“:execute”。

scripting mikrotik
  • 2 个回答
  • 7905 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