Wer kann mir helfen zu analysieren, warum die Rekonstruktion nicht möglich ist, wenn die Real IP von CF hinzugefügt wird

Im Anhang befindet sich das Installationsprotokoll
Im Anhang befindet sich das Installationsprotokoll

In app.yml wurde hinzugefügt: - “templates/cloudflare.template.yml”
log.txt (167,9 KB)

[root@iZj ~]# docker info
Client: Docker Engine - Community
 Version:    26.0.1
 Context:    default
 Debug Mode: false
 Plugins:

  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.13.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.26.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose


Server:
 Containers: 5
  Running: 0
  Paused: 0
  Stopped: 5
 Images: 5
 Server Version: 26.0.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: false
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: e377cd56a71523140ca6ae87e30244719194a521
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 5.10.134-16.3.al8.x86_64
 Operating System: Alibaba Cloud Linux 3 (Soaring Falcon)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.499GiB
 Name: iZj6cdtkubp4jn6i3drnbzZ
 ID: 7196760b-fdec-4e69-8758-9186040c032c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
[root@iZj ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3583         224        2582           2         776        3124
Swap:             0           0           0
[root@iZj~]# df -h
Dateisystem    Größe Benutzt Verf. Ben% Eingehängt auf
devtmpfs        1.8G        0  1.8G    0% /dev
tmpfs           1.8G        0  1.8G    0% /dev/shm
tmpfs           1.8G      540K  1.8G    1% /run
tmpfs           1.8G        0  1.8G    0% /sys/fs/cgroup
/dev/vda3        79G       19G   57G   25% /
tmpfs           1.8G        0  1.8G    0% /tmp
/dev/vda2       200M     5.8M  195M    3% /boot/efi
tmpfs           359M        0  359M    0% /run/user/0

Der VPS hat 2 Kerne und 4 GB RAM.
Ich kann ihn nicht neu erstellen, er ist mit Cloudflare verbunden und ich versuche, die echte IP anzuzeigen.
Hinzugefügt: “templates/cloudflare.template.yml”
Ich kann ihn nicht neu erstellen.

Laut deinem Log ist der Schritt /tmp/add-cloudflare-ips fehlgeschlagen, aber es kann nicht festgestellt werden, welcher Befehl in diesem Skript genau.

Pups::ExecError: /tmp/add-cloudflare-ips fehlgeschlagen mit Rückgabecode #<Process::Status: pid 4229 exit 8>
Ort des Fehlschlags: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec fehlgeschlagen mit den Parametern "/tmp/add-cloudflare-ips"
bootstrap fehlgeschlagen mit Exit-Code 8

Entferne die Cloudflare-Zeile in deiner app.yml, baue neu, führe dann die Befehle aus templates/cloudflare.template.yml manuell Schritt für Schritt im Container aus und führe anschließend nginx -s reload aus. Meiner Erfahrung nach könnte es ein Netzwerkproblem sein, das zum Fehlschlag von wget führt.

run:
  - file:
      path: /tmp/add-cloudflare-ips
      chmod: +x
      contents: |
        #!/bin/bash -e
        # CloudFlare IPs herunterladen
        wget -q https://www.cloudflare.com/ips-v4/ -O - > /tmp/cloudflare-ips
        echo >> /tmp/cloudflare-ips
        wget -q https://www.cloudflare.com/ips-v6/ -O - >> /tmp/cloudflare-ips
        # In Nginx-Befehle umwandeln und für die Aufnahme in den sed append-Befehl escapen
        CONTENTS=$(</tmp/cloudflare-ips sed '/^$/d; s/^.*/set_real_ip_from &;/' | tr '\n' '\\' | sed 's/\\\\/\\\\n/g')

        echo CloudFlare IPs:
        echo $(echo | sed "/^/a $CONTENTS")
        # In discourse.conf einfügen
        sed -i "/sendfile on;/a $CONTENTS\\n" /etc/nginx/conf.d/discourse.conf
        #sed -i "/sendfile on;/a $CONTENTS\\nreal_ip_header CF-Connecting-IP;" /etc/nginx/conf.d/discourse.conf
        # Aufräumen
        rm /tmp/cloudflare-ips

  - exec: "/tmp/add-cloudflare-ips"
  - exec: "rm /tmp/add-cloudflare-ips"

Braucht ein VPS Swap? Mein VPS hat wenig Speicher und standardmäßig keinen Swap.

Die Gründe für dein Scheitern haben nichts mit dem Arbeitsspeicher/Swap zu tun.

Außerdem hatten andere Leute das gleiche Problem wie du. Bitte suche, bevor du fragst. Der Abschnitt “Verwandte Themen” unten hat dir bereits eine intelligente Empfehlung gegeben, zum Beispiel: Failed to bootstrap (/tmp/add-cloudflare-ips)