小编Hou*_*man的帖子

nginx: [emerg] 此处不允许使用“stream”指令

我在 Ubuntu 16.04 上安装了来自 ppa 的最新 NGINX。

nginx 版本:nginx/1.12.1

根据我的理解,它应该支持流和 UDP 负载均衡。

但我收到此错误消息:

nginx: [emerg] "stream" directive is not allowed here in /etc/nginx/conf.d/load-balancer.conf:3
Run Code Online (Sandbox Code Playgroud)

这是我的配置 /etc/nginx/conf.d/load-balancer.conf

stream {
        upstream backend {
                least_conn;
                server 172.31.9.51 fail_timeout=10s;
                server 172.31.20.140 fail_timeout=10s;
        }

        server {
                listen          500 udp;
                listen          4500 udp;
                proxy_pass      backend;
                proxy_timeout   1s;
                proxy_responses 1;
                error_log       logs/dns.log;
        }
}
Run Code Online (Sandbox Code Playgroud)

nginx load-balancing udp ubuntu-16.04

19
推荐指数
1
解决办法
4万
查看次数

nginx:相当于a2enmod 是什么?

我正在从 Apache2 切换到 nginx。

这些命令在 nginx 世界中的等价物是什么?

sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod headers 
sudo a2enmod expires 
sudo a2enmod php5
Run Code Online (Sandbox Code Playgroud)

非常感谢,

nginx

7
推荐指数
1
解决办法
6339
查看次数

如何在 PHP 5.4.9-4 上安装 php-xml 和 php-mbstring?

我已将 PHP5 添加到 UBUNTU 12.04

sudo add-apt-repository ppa:ondrej/php5 -y
Run Code Online (Sandbox Code Playgroud)

并安装了 PHP5

php5 php5-common php5-mysql php5-xmlrpc php5-cgi php5-curl php5-gd php5-cli php5-fpm php-apc php-pear php5-dev php5-imap php5-mcrypt 
Run Code Online (Sandbox Code Playgroud)

但是我找不到两个包

php-xml and php-mbstring
Run Code Online (Sandbox Code Playgroud)

知道他们现在如何称呼吗?

非常感谢,

ubuntu php php5

6
推荐指数
1
解决办法
9万
查看次数

如何在重启后立即在 bash 中启动 tmux

我创建了一个在 Ubuntu 实例重新启动时运行的脚本。

crontab -e
Run Code Online (Sandbox Code Playgroud)

然后将其添加到脚本中:

@reboot /home/ubuntu/startup.sh
Run Code Online (Sandbox Code Playgroud)

脚本如下所示:

#!/bin/bash
tmux new-session -d -s my_server
tmux send-keys -t my_server:0 ". /home/ubuntu/venv/bin/activate" C-m
tmux send-keys -t my_server:0 "cd ~/canonicaliser_api" C-m
tmux send-keys -t my_server:0 "git checkout new-schema" C-m
tmux send-keys -t my_server:0 "git pull" C-m
tmux send-keys -t my_server:0 "cd ~/canonicaliser_api/canonicaliser/workers" C-m
tmux send-keys -t my_server:0 "python person_worker.py" C-m
Run Code Online (Sandbox Code Playgroud)

重新启动后,我执行 atmux attach以查看结果。

$ . /home/ubuntu/venv/bin/activate
cd ~/canonicaliser_api
(venv)$ (venv)$ git checkout new-schema
git pull
cd ~/canonicaliser_api/canonicaliser/workers
python person_worker.py
Already …
Run Code Online (Sandbox Code Playgroud)

ubuntu bash virtualenv tmux

6
推荐指数
1
解决办法
3351
查看次数

如何限制每个 VPN 连接的带宽?

我有一个 StrongSwan (IKEv2) 服务器设置,并希望将每个 VPN 连接限制为 512kb/s。

经过研究,我遇到tc了 Ubuntu。我不太明白,正在阅读手册页。

DEV=eth0
tc qdisc del dev $DEV root
tc qdisc add dev $DEV handle 1: root htb default 11
tc qdisc add dev $DEV parent 1:11 handle 11: sfq perturb 60 
Run Code Online (Sandbox Code Playgroud)

我认为这意味着将未分类的流量重新路由到 ID 11,然后每 60 秒将其平衡一次。sqf 还保证请求之间平等数据流的公平性。

队列算法扰动的时间间隔(以秒为单位)。默认为 0,这意味着不会发生扰动。不要为每个扰动设置太低可能会导致某些数据包重新排序或丢失。建议值:60 该值在使用外部流分类时没有影响。最好增加除数值以降低哈希冲突的风险。

我不太确定这两个。在我看来,主要连接将被限制为 512kbps,而未分类的连接将被限制为 128kbps。但我不确定。

tc class add dev $DEV parent 1: classid 1:1 htb rate 512kbps
tc class add dev $DEV parent 1:1 classid 1:11 htb rate 128kbps
Run Code Online (Sandbox Code Playgroud)

最糟糕的是,我不确定每个 VPN 连接是否也符合上述这些规则,或者这些规则是否仅影响 …

ipsec tc strongswan ikev2 ubuntu-16.04

6
推荐指数
0
解决办法
625
查看次数

为什么 certbot 突然回退到 http-01 挑战而不是 tls-sni-01 (https)?

我有一个经过良好测试的 bash 脚本,直到几周前它都运行良好。
似乎 certbot 挑战现在默认为 http 而不是 https。我想不通原因。

echo 'rsa-key-size = 2048
renew-hook = /usr/sbin/ipsec reload && /usr/sbin/ipsec secrets
' > /etc/letsencrypt/cli.ini

certbot certonly --non-interactive --agree-tos --email $EMAIL --standalone -d $VPNHOST
Run Code Online (Sandbox Code Playgroud)

防火墙设置:

Firewall stopped and disabled on system startup
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             state NEW recent: UPDATE seconds: 60 hit_count: 12 name: DEFAULT side: source mask: 255.255.255.255
           all  --  anywhere             anywhere             state NEW recent: SET name: DEFAULT side: source …
Run Code Online (Sandbox Code Playgroud)

ubuntu iptables lets-encrypt ubuntu-16.04 certbot

6
推荐指数
1
解决办法
1889
查看次数

不应阻止哪些 ICMP 类型 (v4/v6)?

我对此进行了大量研究,发现一些参考文献相互矛盾。

IPV6 例如,RFC4890表示应允许使用以下类型以获得最佳功能:

类型 1、2、3、4、128、129,以及用于行动辅助的 144、145、146 和 147。

然而,该消息来源并未提及需要移动辅助:(类型 1 和 4 也被省略)

128、129、2、3 型以及 NDP 和 SLAAC 133、134、135、136 和 137

另一方面,前参考文献说 NDP 和 SLAAC 不需要特别关注,因为无论如何它们都会被删除。那么谁是对的呢?为了安全起见,最好允许两个消息来源提到的所有这些吗?

IPV4: 令人惊讶的是,该参考文献没有对 IPv4 提出任何建议,但另一个来源表示 IPv4 需要类型 8、0、3 和 11。是否有任何官方参考建议应允许哪些 IPv4 ICMP?

更新: 虽然答案很好,但我发现它太笼统,无法接受它作为真正的解决方案。如果阻止不是解决办法,那么速率限制必须是提供一定程度保护的正确方法。我相信使用正确的代码示例给出的答案会更让人放心。

internet iptables ipv6 rfc ipv4

6
推荐指数
1
解决办法
1600
查看次数

如何在 SSL 上设置 Apache NameVirtualHost?

我想将两个 DNS 的 A 记录设置为指向我的 Ubuntu 实例。然后 Apache 应该相应地读取域名并将传入的请求指向正确的物理路径。

我已经设置好了这是/etc/apache2/ports.conf的内容

我担心 WinXP 用户无法根据下面的评论访问我的 SSL 站点,那么我应该如何做?

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    NameVirtualHost *:443
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    NameVirtualHost *:443
    Listen 443
</IfModule>
Run Code Online (Sandbox Code Playgroud)

大多数人都有 WinXP 和 Internet Explorer,所以这有点令人担忧。我如何以不同的方式设置 …

ubuntu apache-2.2

5
推荐指数
1
解决办法
2万
查看次数

是否可以在 Amazon RDS 上安装 MySQL 扩展?

我们即将将现有系统从同一 EC2 上的本地 MySQL 实例迁移到适当的远程 Amazon-RDS。

不幸的是Median,缺少一个名为MySQL的功能。我们现有的代码库使用MySQL Infusion UDF来实现计算中值。

  1. 现在我们处于两难的境地,是否可以在RDS上安装这些扩展?我相信 RDS 并不像 EC2,您可以在其中通过 SSH 进行安装并安装一些东西。

  2. 或者有没有办法median在不使用扩展的情况下在 MySQL上做到这一点?

mysql ubuntu amazon-web-services amazon-rds

5
推荐指数
1
解决办法
779
查看次数

logrotate.conf 是否覆盖子模块的配置?

我想知道哪个日志优先于另一个。

查看此处定义的 rsyslog,它定义了每日轮换并将它们保留 30 天。

vim /etc/logrotate.d/rsyslog

/var/log/syslog
{
        rotate 30
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}
Run Code Online (Sandbox Code Playgroud)

然后我们有主要配置,每周轮换一次,一次保持 4 周。

vim /etc/logrotate.conf

# rotate log files weekly
weekly

# use the syslog group by default, since this is the owning group
# of /var/log/syslog.
su root syslog

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# uncomment this if you want your log files compressed …
Run Code Online (Sandbox Code Playgroud)

logrotate rsyslog ubuntu-18.04

3
推荐指数
1
解决办法
1397
查看次数