问题列表 - 第5080页

nginx反向代理后面的Keycloak空白页

在解压并启动 keycloak 以侦听 127.0.0.1 后,我将 nginx 配置为可通过 https 从公共可用域访问的反向代理。

这是nginx配置:

http
{
    server_tokens off;

    upstream keycloak { ip_hash; server 127.0.0.1:8080; }

    server
    {   
        server_name name.domain.tld;
        listen 443 ssl http2; # managed by Certbot
        ssl_certificate /path/to/cert; # managed by Certbot
        ssl_certificate_key /path/to/key; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        location /
        {   
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            add_header Access-Control-Allow-Origin *;
            proxy_pass http://keycloak;
        }
    }


    server …
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy single-sign-on mixed-content

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

是否可以在同一 Server 2019 上配置 Active Directory 和 VPN?

我有一个在 Windows Server 2019 上配置的活动目录,我可以在同一台服务器上配置 VPN 吗?

vpn active-directory

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

未解析的上游服务器地址是否有 nginx 变量?

当使用 nginx 作为上游块中一组服务器的反向代理时,是否有一个变量与未解析的服务器名称相对应?例如,考虑以下配置:

http {
    upstream foo {
        server foo1.example.com:8080;
        server foo1.example.com:8081;
        server foo2.example.com:8080;
        server foo2.example.com:8081;
    }
    server {
        server_name foo.example.com;
        location / {
            proxy_pass http://foo;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

foo.example.comfoo1.example.com、 和foo2.example.com分别为解析为 192.0.2.1、192.0.2.2 和 192.0.2.3 的定义名称。

假设有一个请求进来foo.example.com,nginx决定选择foo2.example.com8080端口作为上游服务器,请求成功。然后,据我所知,这些将是一些相关变量的值:

  • $host = foo.example.com
  • $proxy_host = foo
  • $upstream_addr = 192.0.2.3:8080(*)

但是,这些值都不与上游服务器配置中给定的值匹配。foo2.example.com:8080因此,更具体地说,我的问题是:在这种情况下哪个变量(如果有)的值为?

为了避免 XY 问题,这些是我试图完成的事情:

  1. 通过主机名而不是 IP 地址记录上游服务器,因为解析的 IP 地址可能是临时的或可能不支持 1:1 反向查找
  2. map上游服务器到另一条更有用的信息,也用于日志记录目的
  3. 当服务器不共享相同的证书时,为上游 SSL配置主机名验证(例如,via proxy_ssl_name)(这可能会产生一个自己的问题,但这不是唯一的用例)

(*) = 该变量$upstream_addr …

nginx

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

我怎么能有多个authorized_keys文件?

我希望能够在 2 个单独的文件中指定密钥,一个是用户控制的,另一个是由工具自动生成的。

我怎样才能做到这样一个文件~/.ssh/authorized_keys_generated也能在登录时检查密钥?

ssh

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


Ext4 vs. XFS vs. Btrfs vs. ZFS for NAS

我的用例:我在 M.2 SSD 上安装了 Ubuntu Server 18.04。我有一个 4TB 硬盘,我想添加为存储。由于它主要用于大型媒体文件和备份,因此不会经常写入。

您认为哪种文件系统最适合此用例?

我的主要候选者是 Ext3/4、XFS、Btrfs 和 ZFS(随意争论另一个)。

我不是在问“什么是最好的文件系统?”——没有“最好的”这样的东西。 我只是问人们哪个文件系统可能最适合这个用例。请尝试包括:

  • 有什么缺点或风险吗?我听说如果断电,XFS 会损坏数据。与没有 ECC RAM 的 ZFS 相同。
  • 以后是否可以在不丢失数据的情况下添加 RAID-1?我现在没有足够的钱购买另一个硬盘驱动器(我将它用于外部驱动器;RAID 不会取代备份),但我可能会在以后添加一个。这不是一个要求,只是一些可能很好的东西。
  • 读/写性能如何?Btrfs 可能满足我的大部分需求,但在 Phoronix 基准测试中速度非常慢。XFS 具有令人印象深刻的性能,但我听说它会导致数据丢失。

谢谢你的建议。

xfs zfs network-attached-storage ext4 btrfs

37
推荐指数
3
解决办法
5万
查看次数

在执行长时间运行的任务之前打印 Ansible 标头

语境

我有一本 Ansible 剧本,其中包含一项很长的任务,长达一小时。

非常简化,看起来像:

- hosts: localhost
  tasks:
  - name: Short task
    debug:
      msg: "I'm quick!"

  - name: Long task
    shell: "sleep 15s"
Run Code Online (Sandbox Code Playgroud)

当用户运行剧本时,输出首先是:

PLAY [localhost] ********************
TASK [Gathering Facts] **************
ok: [127.0.0.1]

TASK [Short task] *******************
ok: [127.0.0.1] => {
    "msg": "I'm quick!"
}

(hang there until Long task is done)

TASK [Long task] ********************
changed: [127.0.0.1]
Run Code Online (Sandbox Code Playgroud)

问题

该剧本的最终用户认为存在问题,Short task因为它挂在那里,而这Long task正是导致延迟的原因。

问题

我如何配置 ansible 或 playbook 以在执行任务name: 之前打印定义的标头?

我要实现的是这样的输出:

PLAY [localhost] ********************
TASK …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

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

Nginx:速率限制失败基本身份验证尝试

在 Nginx(撰写本文时为 1.14.1)中给出一个简单的 HTTP 基本身份验证设置,如下所示:

server {
  ...
  location / {
    auth basic "HTTP Auth Required";
    auth basic user file "/path/to/htpasswd";
  }
}
Run Code Online (Sandbox Code Playgroud)

...如何对失败的登录尝试应用速率限制?例如,如果 30 秒内有 10 次登录尝试失败,我想阻止该源 IP 在一个小时内访问该网站。我希望利用limit_req_zone和 相关指令,但找不到一种方法来连接请求的身份验证状态。

这在 HAproxy 中相当简单,使用棒表和 ACL,使用类似以下工作示例的内容。

userlist users
  user me password s3cr3t

frontend https.local
  ...

  # Set up the stick table to track our source IPs, both IPv4 & IPv6
  stick-table  type ipv6  size 100k  expire 1h  store http_req_rate(30s)

  # Check if the user has authenticated
  acl  auth_ok  http_auth(users) …
Run Code Online (Sandbox Code Playgroud)

nginx authentication brute-force-attacks rate-limiting

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

KEYCLOAK + MYSQL + DOCKER --> 启动失败

我正在尝试启动一个 Keycloak 实例,它使用自定义 mysql 数据库而不是嵌入式 H2。

由于我打算使用docker,所以我为Keyclock docker创建了一个网络来与mysql通信。

docker网络创建keycloak网络

接下来,使用以下命令启动 mysql 的 docker 实例。

sudo docker run --name mysql-container --net keycloak-network -v /home/renju/opt/EXONERATE/DB/mysql-data-5-7:/var/lib/mysql -e MYSQL_DATABASE=keycloak -e MYSQL_USER =ku -e MYSQL_PASSWORD=kupw -e MYSQL_ROOT_PASSWORD=myrootpw -d -p 3306:3306 mysql:5.7

我期望 keycloak使用用户名ku和密码kupw访问数据库keycloak。我确保数据库和用户都是在 mysql 中创建的。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| keycloak           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> select * from …
Run Code Online (Sandbox Code Playgroud)

mysql docker keycloak

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

libvirt NAT 配置 - DHCP 不起作用

我想使用libvirt网络NAT配置。

libvirt 说https://wiki.libvirt.org/page/Virtual_network_%22default%22_has_not_been_started

“1) 如果您实际上并未在物理机上使用 dnsmasq 来为物理网络提供 DHCP 服务,则应该完全禁用 dnsmasq”

这与我的上下文相对应,因此我在主机系统中停止并禁用 dnsmasq。

在qemu系统中:

virsh # net-edit default

<network>
 <name>default</name>
 <uuid>b6ef8506-d4c7-4bba-9fe7-8f971ea87d10</uuid>
 <forward mode='nat'>
  <nat>
   <port start='1024' end='65535'/>
  </nat>
 </forward>
 <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:06:86:de'/>
  <domain name='circus.net'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
   <dhcp>
    <range start='192.168.122.2' end='192.168.122.10'/>
   </dhcp>
  </ip>
</network>
Run Code Online (Sandbox Code Playgroud)

我启动默认网络:

virsh # net-start default
Network default started

virsh # net-list
Name State Autostart Persistent
----------------------------------------------------------
default active no yes
Run Code Online (Sandbox Code Playgroud)

我启动客人S0和S1

virsh # start S0
Domain S0 started

virsh # …
Run Code Online (Sandbox Code Playgroud)

dhcp nat libvirt

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