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

matpen's questions

Martin Hope
matpen
Asked: 2022-03-14 08:45:49 +0800 CST

RabbitMQ quorum queues - 让节点自动重新加入

  • 0

我正在探索RabbitMQ quorum 队列,以改进 Kubernetes 集群中某些服务的 HA。在我阅读时,它们的设计考虑到了数据安全。

但是,“管理副本”一章指出:

仲裁队列的副本由操作员显式管理。当一个新节点被添加到集群中时,它不会托管任何仲裁队列副本,除非操作员明确地将其添加到仲裁队列或一组仲裁队列的成员(副本)列表中。

因此,如果发生中断(尤其是非自愿的),可能会出现以下情况(对于 3 节点集群):

  1. 中断后,一个节点会宕机:其他两个节点仍然占多数,并将“保持队列活动”,可能会选举一个新的领导者;
  2. kubernetes 会提供一个新的节点(pod)来替换失效的节点;新节点会自动重新加入 RabbitMQ 集群,但是
  3. 除非操作员手动干预,否则新节点不会对现有的仲裁队列做出贡献;
  4. 对于 3 节点集群,这意味着不再有 HA:如果将来某个时候,其他节点之一发生故障,则队列实际上会丢失;

有什么办法可以缓解这种情况吗?例如,是否可以让节点自动重新加入所有现有的仲裁队列集群?也许通过维护一个“启动命令”列表(在 RabbitMQ 启动后运行)我们可以添加重新加入命令?

high-availability kubernetes rabbitmq
  • 1 个回答
  • 242 Views
Martin Hope
matpen
Asked: 2016-11-03 11:19:22 +0800 CST

NFSv4 用户映射

  • 16

这个问题似乎已经被问过很多次了,但其他答案不知何故不适用于我。

基本上我只是设置了一个新的 NFSv4 服务器,我面临着 UID 和 GID 在服务器和客户端之间不匹配的经典问题。但是,在我的场景中同步 /etc/passwd 和 /etc/group 是不可行的。请注意,我在两台机器上都有相同的用户(与这个问题相反)。

因此,我正在研究 idmap:根据一些消息来源,似乎 NFSv4 发送用户名(与 NFSv3 发送 UID/GID 的行为相反),idmap 的作用是将这些用户名转换为服务器 UID/GID。

但是,这在我的情况下似乎不起作用(下面的设置详细信息),我认为这是非常标准的(几乎只从 repo 安装了 NFS)。

我错过了什么吗?有没有办法在不设置 LDAP 或 Kerberos 的情况下完成这项工作?


服务器设置

服务器已Ubuntu 16.04安装和两个用户。

user1@server:~$ id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),27(sudo)
user1@server:~$ id user2
uid=1001(user2) gid=1001(user2) groups=1001(user2)

NFS 从 repo 安装并配置为导出测试文件夹。

user1@server:~$ sudo apt-get install nfs-kernel-server

user1@server:~$ sudo cat /proc/fs/nfsd/versions 
+2 +3 +4 +4.1 +4.2

user1@server:~$ ls -ld /srv/nfs/test/
drwxrwxrwx 2 nobody nogroup 4096 nov  2 17:34 /srv/nfs/test/

user1@server:~$ cat /etc/exports 
"/srv/nfs/test" 192.168.x.x(rw,sync,no_subtree_check)

由于服务器和客户端的主机名不同,我在 idmapd 的配置文件中更改了“域”值。否则,该文件与包管理器安装的文件相同。请注意,此文件的内容在服务器和客户端上是相同的。

user1@server:~$ cat /etc/idmapd.conf
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = mydomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

客户端设置

客户端还有Ubuntu 16.04两个用户,但是用户名相同但 UID/GID 不同。

user1@client:~$ id user1
uid=1001(user1) gid=1002(user1) groups=1002(user1),27(sudo)
user1@client:~$ id user2
uid=1000(user2) gid=1000(user2) groups=1000(user2),27(sudo)

NFS 是从 repo 安装的,并且测试共享已安装。

user1@client:~$ sudo apt-get install nfs-common

user1@client:~$ mkdir ./test
user1@client:~$ sudo mount -t nfs4 192.168.x.x:/srv/nfs/test ./test

测试

首先我在客户端创建一个文件,这看起来不错:

user1@client:~$ touch test/testfile
user1@client:~$ ls -l ./test
total 0
-rw-rw-r-- 1 user1 user1 0 nov  2 17:24 testfile

但是当我从服务器查看文件时,我注意到所有者是错误的,而组不存在。

user1@server:~$ ls -l /srv/nfs/test
total 0
-rw-rw-r-- 1 user2 1002 0 nov  2 17:24 testfile

实验

根据this answer to a similar question,应在服务器上按如下方式激活id-mapping(注意错误):

user1@server:~$ sudo tee /sys/module/nfsd/parameters/nfs4_disable_idmapping <<< "N"
user1@server:~$ sudo nfsidmap -c
nfsidmap: 'id_resolver' keyring was not found.
user1@server:~$ sudo service rpcidmapd restart
Failed to restart rpcidmapd.service: Unit rpcidmapd.service not found.
user1@server:~$ sudo service nfs-kernel-server restart

在客户端上(注意没有错误):

user1@client:~$ sudo tee /sys/module/nfs/parameters/nfs4_disable_idmapping <<< "N"
user1@client:~$ sudo nfsidmap -c

但结果很奇怪:

user1@client:~$ touch test/testfile
user1@client:~$ ls -l test
total 0
-rw-rw-r-- 1 user2 4294967294 0 nov  2 19:16 testfile
user1@server:~$ ls -l /srv/nfs/project/
total 0
-rw-rw-r-- 1 user2 1002 0 nov  2 19:16 prova

另一个答案建议修改 idmapd 配置如下(两台机器上的内容相同):

user1@server:~$ cat /etc/idmapd.conf 
[General]

Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = mydomain

[Translation]
   Method=static
[Static]
   user1@mydomain = user1

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

但这似乎没有任何区别。

ubuntu nfs
  • 1 个回答
  • 23976 Views
Martin Hope
matpen
Asked: 2015-06-25 21:07:32 +0800 CST

AH01797:客户端被服务器配置拒绝:/usr/share/doc

  • 8

很长一段时间以来(现在一个多月),我在 apache 日志中看到如下行:

180.76.15.138 - - [24/Jun/2015:16:13:34 -0400] "GET /manual/de/mod/module-dict.html HTTP/1.1" 403 396 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
180.76.15.159 - - [24/Jun/2015:16:28:34 -0400] "GET /manual/es/mod/mod_cache_disk.html HTTP/1.1" 403 399 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
66.249.75.86 - - [24/Jun/2015:16:18:01 -0400] "GET /manual/es/programs/apachectl.html HTTP/1.1" 403 436 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
[Wed Jun 24 16:13:34.430884 2015] [access_compat:error] [pid 5059] [client 180.76.15.138:58811] AH01797: client denied by server configuration: /usr/share/doc/apache2-doc/manual/de/mod/module-dict.html
[Wed Jun 24 16:18:01.037146 2015] [access_compat:error] [pid 2791] [client 66.249.75.86:56362] AH01797: client denied by server configuration: /usr/share/doc/apache2-doc/manual/es/programs/apachectl.html
[Wed Jun 24 16:28:34.461298 2015] [access_compat:error] [pid 2791] [client 180.76.15.159:25833] AH01797: client denied by server configuration: /usr/share/doc/apache2-doc/manual/es/mod/mod_cache_disk.html

这些请求似乎真的来自百度蜘蛛和 Googlebot(使用反向 DNS 进行检查,如此处所述):

user@server:~$ host 66.249.75.86
86.75.249.66.in-addr.arpa domain name pointer crawl-66-249-75-86.googlebot.com.
user@server:~$ host crawl-66-249-75-86.googlebot.com
crawl-66-249-75-86.googlebot.com has address 66.249.75.86

我已经阅读过关于这个主题的类似问题,例如this和this,但是对于那些,这些错误实际上是在阻止站点正常工作。相反,在我的情况下,机器人尝试访问的 html 页面不存在,因此这是 Apache 的预期行为。唯一令人烦恼的是,尽管 Google 网站管理员工具没有显示任何错误,但 Google 在索引我的网站方面似乎很慢。

我正在使用具有以下虚拟主机配置的 Apache 版本 2.4.7:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot "/var/www/example.com/public"
    <Directory />
        Options None
        AllowOverride None
        Order Deny,Allow
        Deny from all
        Require all denied
    </Directory>
    <Directory "/var/www/example.com/public">
        Options None
        AllowOverride FileInfo Limit Options=FollowSymLinks 
        Order Allow,Deny
        Allow from all
        Require all granted
    </Directory>

    ErrorLog /var/log/apache2/example.com/error.log
    CustomLog /var/log/apache2/example.com/access.log combined
</VirtualHost>

因此,我的问题是:

  1. 为什么百度蜘蛛和 Googlebot 反复尝试访问我网站上不存在且网站上任何链接都没有引用的内容?
  2. 像这样的请求如何GET /manual/de/mod/...被映射到/usr/share/doc/apache2-doc/manual/de/mod/...,而据我了解,它们应该去哪里/var/www/example.com/public/manual/de/mod/...?
  3. 一般来说:我应该担心这些行是配置错误的标志,还是有解释?
apache-2.4
  • 3 个回答
  • 40984 Views
Martin Hope
matpen
Asked: 2015-06-15 12:29:37 +0800 CST

带有 suPHP 的 Apache 不支持 vhost 配置中的 php_admin_value

  • 0

我刚刚发现在 vhost 配置中覆盖 php.ini 设置在使用 suPHP 的 Apache 上不起作用。

该系统是 Ubuntu Server Edition 14.04 LTS,我安装了 Apache + PHP,如下所示:

apt-get install apache2 apache2-mpm-prefork apache2-utils php5

在不更改任何设置的情况下,以下虚拟主机可以开箱即用:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/html/public
    php_admin_value open_basedir /var/www/html
</VirtualHost>

可以验证“open_basedir”设置是否符合 phpinfo()。

但是,安装 suPHP 和 suExec 后:

apt-get install libapache2-mod-suphp apache2-suexec
a2enmod suexec

phpinfo() 显示这些值仍然是“/etc/php5/cgi/php.ini”中设置的值。这不仅适用于 open_basedir,而且适用于我尝试使用php_admin_valueor覆盖的任何设置php_value。

有没有办法使上述设置工作?

apache-2.4
  • 1 个回答
  • 425 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