docker-composeで、keycloakをnginxを使ってReverse proxyして立ち上げる設定。

https://~/auth/のwelcomeページのリンクがhttpsにならないとか、https://~/auth/admin/master/console/のscriptのsrcが下記のようにhttpsにならないとかで嵌ったのでメモ。

<script src="/auth/resources/i5ev0/common/keycloak/lib/filesaver/FileSaver.js"></script>
<script src="/auth/resources/i5ev0/common/keycloak/lib/ui-ace/min/ace.js"></script>
<script src="/auth/resources/i5ev0/common/keycloak/lib/ui-ace/ui-ace.min.js"></script>

<!-- ここだけhttpになる -->
<script src="http://~/auth/js/keycloak.js?version=i5ev0" type="text/javascript"></script>

docker-compose

keycloakのKEYCLOAK_FRONTEND_URL, RROXY_ADDRESS_FORWARDINGの環境変数がポイント。

# docker-compose.yml
version: "3.4"

networks:
  keycloak-net:

services:
  nginx:
    image: nginx:1.21.0
    networks:
      - keycloak-net
    depends_on:
      - keycloak
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./nginx/ssl:/etc/nginx/ssl
    ports:
      - "443:443"

    restart: always

  keycloak-db:
    image: postgres:11-alpine
    volumes:
      - ./db:/var/lib/postgresql/data
    networks:
      - keycloak-net
    expose:
      - "5432"
    environment:
      POSTGRES_DB:       keycloak
      POSTGRES_USER:     keycloak
      POSTGRES_PASSWORD: password
    restart: always

  keycloak:
    image: jboss/keycloak:13.0.1
    depends_on:
      - keycloak-db
    networks:
      - keycloak-net
    expose:
      - "8080"
    environment:
      - "DB_VENDOR=POSTGRES"
      - "DB_ADDR=keycloak-db"
      - "DB_PORT=5432"
      - "DB_DATABASE=keycloak"
      - "DB_USER=keycloak"
      - "DB_PASSWORD=password"
      - "KEYCLOAK_USER=admin"
      - "KEYCLOAK_PASSWORD=admin"
      - "KEYCLOAK_FRONTEND_URL=https://xxxx/auth"
      - "RROXY_ADDRESS_FORWARDING=true"
    restart: always

nginx

# nginx/conf.d/default.conf
server {

        listen 443 ssl;

        ssl_certificate     /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
                proxy_pass http://keycloak:8080;
        }

}
Udemy 独学でのアプリ開発に限界を感じたら

プログラミング初学者の皆さんに、 Udemy を強くお勧めしたいと思います。 Udemy は世界中のトップレベルのプログラミング講師が提供するオンライン講座を取り揃えています。以下は、 Udemy で学ぶことのメリットについての詳細です。

1. Udemy の豊富なコースの選択肢

Udemyには、数千ものコースがあります。初心者から上級者まで、プログラミングのあらゆるレベルを網羅しています。また、様々なプログラミング言語やツールに関するコースも多数あり、希望に合わせたコースを選ぶことができます。

2. 実践的な学習方法

Udemyのコースは、理論だけでなく実践的な学習も行えます。多くのコースには、プログラムの作成や実際のプロジェクトに取り組む演習が含まれています。これにより、理論だけでなく実践的なスキルも身につけることができます。

3. Udemy には質の高い講師陣

Udemyの講師陣には、世界中のトップレベルのプログラマーが多数在籍しています。彼らは、実務での経験を活かして、分かりやすい講義を行っています。

4. 初学者が始めるのにとても手頃な価格

Udemyのコースは、他のオンライン講座と比べて手頃な価格で提供されています。また、一度購入すると、終身アクセスが得られるので、自分のペースで学習することができます。

以上の理由から、プログラミング初学者の方には、Udemyが最適な学習プラットフォームであると考えられます。ぜひ一度、Udemyのコースを体験してみてください。


ウェブ開発の人気オンラインコース


ITとソフトウェアの人気オンラインコース


デザインの人気オンラインコース