Wie richte ich den Port für die Subdomäne in AWS ein?

Wie richte ich den Port für die Subdomäne in AWS ein?

Ich habe eine Domain (z. B. example.com) bei godaddy.com registriert und verwende AWS für das Hosting. Nameserver bei Godaddy später zu AWS hinzugefügt

Bildbeschreibung hier eingeben

Ich habe einen Ubuntu (t2.medium) Apache-Server installiert. Mein Projekt in Docker hat LAMP, ELK, Node, React und Postgres installiert. Alles funktioniert auf dem lokalen System über direkte Ports. In meinem Projekt sind nur wenige Ports geöffnet, d. h.

  • example.com:3000 reagieren app [frontend]
  • example.com:5601 Kibana-App
  • example.com:5050 Postgradmin-App
  • example.com/radius PHP-Anwendung [Backend]
  • example.com:8080 phpmyadmin app

meine gewünschten URLs sind:

Ich habe ein paar Dinge probiert, aber nichts funktioniert. auf Route53 Bildbeschreibung hier eingeben

habe Reverse-Proxy auf Apache ausprobiert, indem ich separate Conf-Dateien hinzugefügt habe, z. B.

Datei default.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html"
    ServerName example.com
    <Directory "/var/www/html/">
        AllowOverride all
    </Directory>
</VirtualHost>

kibana.conf

Listen 5601

<VirtualHost *:5601>
    ServerAdmin [email protected]
    ServerName kibana.example.com
</VirtualHost>

pgadmin.conf

Listen 5050

<VirtualHost *:5050>
    ServerAdmin [email protected]
    ServerName pgadmin.example.com
</VirtualHost>

wenn ich docker-compose auf EC2 ausführe,http://example.com/radiusfunktioniert gut. aber andere nicht (zBhttp://kibana.example.com). Wenn Sie es aber direkt mit dem Port versuchen (z. B. example.com:5601), funktioniert es. Ich möchte jedoch eine Subdomäne verwenden, keine Domäne mit einem Port.

Wie geht das?

Reverse-Proxy Ich habe es wie in der Beschreibung beschrieben versucht, aber es funktioniert nicht richtig

Antwort1

Habe die Lösung gefunden, bitte kommentieren Sie, wenn dieser Ansatz falsch ist.

Meine Subdomains in AWS route53 hinzugefügt:

aws-route53

In der Datei docker-compose.yml hinzugefügtAbonnierenund habe meine anderen Bilder im selben Netzwerk hinzugefügt (t2_proxy)

traefik:
  image: "traefik:v2.9"
  container_name: $DOCKER_IMAGE_TRAEFIK
  command:
    #- "--log.level=DEBUG"
    - "--api.insecure=true"
    - "--providers.docker=true"
    - "--providers.docker.exposedbydefault=false"
    - "--entrypoints.web.address=:80"
  ports:
    - "80:80"
    - "8080:8080"
  labels:
      - traefik.enable=true
      - traefik.http.routers.api.rule=Host(`$DOCKER_TRAEFIK_HOST_PROXY`)
      - traefik.http.routers.api.entrypoints=web
      - traefik.http.routers.api.service=api@internal
    #  - traefik.port=8080"
  volumes:
    - "/var/run/docker.sock:/var/run/docker.sock:ro"
  networks:
    - t2_proxy
    - postgreNetwork
    - elk

In dieser Konfiguration ist $DOCKER_IMAGE_TRAEFIK der Traefik-Image-Name aus meiner .env-Datei. Sie können Ihren Image-Namen hinzufügen und $DOCKER_TRAEFIK_HOST_PROXY ist der Hostname, z. B. proxy.example.com

für die Portkonfiguration:

phpmyadmin:
  image: phpmyadmin:latest
  platform: linux/amd64
  container_name: $DOCKER_IMAGE_PHPMYADMIN
  links:
    - mysqldb
  networks:
    - t2_proxy
  environment:
    PMA_HOST: mysqldb
    PMA_PORT: ${MYSQL_PORT:-3306}
  # ports:
    # - "${PHPMYADMIN_PORT:-7865}:80"
  labels:
    - "traefik.enable=true"
    - "traefik.http.routers.phpmyadmin.rule=Host(`$DOCKER_TRAEFIK_HOST_PHPMYADMIN`)"
    - "traefik.http.routers.phpmyadmin.entrypoints=web"
    - "traefik.http.routers.phpmyadmin-rtr.tls=true"
    - "traefik.port=$PHPMYADMIN_PORT"
  volumes: 
    - /sessions

In dieser Konfiguration ist $DOCKER_IMAGE_PHPMYADMIN der Name des phpmyadmin-Images und $PHPMYADMIN_PORT ist 7865 aus meiner .env-Datei. Sie können es beliebig ändern. $DOCKER_TRAEFIK_HOST_PHPMYADMIN ist der Hostname, z. B. phpmyadmin.example.com

In diesem Beispiel. Ich habe den Portzugriff blockiert und kann ordnungsgemäß auf die Subdomäne zugreifen. Dieselben Einstellungen für LAMP, ELK, Node und React in meinem Projekt.

verwandte Informationen