前提・実現したいこと
初めて投稿させていただきます。
現在、docker-compose で nginx + redmine + mysql で環境を構築しています。
他との関係上、nginxのコンテナは ホスト側ポートを81,コンテナ側ポートを80 とする予定でいます。
この設定で動かしてみたところ
ブラウザから http://ホストIP:ホストport/redmine にアクセスすると
redmineの初期画面は正しく表示され、ログイン画面へ移るところまで正しく動作します。
ログイン画面でログイン名とパスワードを入力後、ログインボタンを押下でmy/pageにリダイレクトされるのですが、
ブラウザには http://ホストIP/redmine/my/page のURLがリダイレクトされます。
81のポート番号が付いていないためブラウザ側で my/page が読み込めず正しく表示されません。
リダイレクトURLを http://ホストIP:ホストport/redmine/my/page とするには
どの様に設定すればよいのか、ご教示いただけると大変ありがたいです。何卒お願いいたします。
発生している問題・エラーメッセージ
エラー等は特に発生していません。
リダイレクト先のURLが http://ホストIP:81/redmine/my/page とならないことが原因と思っています。
該当のソースコード
docker-compose.yml の内容は以下のとおりです。
version: '2' services: redmine-mysql: restart: always image: sameersbn/mysql:latest environment: - DB_USER=redmine - DB_PASS=redmine - DB_NAME=redmine_production volumes: - /srv/docker/redmine/mysql:/var/lib/mysql redmine: restart: always image: sameersbn/redmine:latest links: - redmine-mysql:mysql environment: - TZ=Asia/Tokyo - DB_ADAPTER=mysql2 - DB_HOST=redmine-mysql - DB_USER=redmine - DB_PASS=redmine - DB_NAME=redmine_production - REDMINE_HTTPS=false - REDMINE_RELATIVE_URL_ROOT=/redmine volumes: - /srv/docker/redmine/redmine:/home/redmine/data proxy: build: nginx-proxy links: - redmine:redmine ports: - "81:80"
最後のproxyサービスのポート設定のところでnginxのポートを設定しています。(ホスト側 81: コンテナ内部 80)
nginx-proxyのbuild用dockerfieは次のとおりです。
# https://registry.hub.docker.com/_/nginx/ FROM nginx:latest # 設定ファイルをコピー COPY nginx.conf /etc/nginx/nginx.conf
nginx(nginx.conf)の設定は次のとおりです。
user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server_tokens off; server { listen 80 default_server; listen [::]:80 default_server; server_name 127.0.0.1; charset utf-8; client_max_body_size 1024M; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto http; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-NginX-Proxy true; # static-html location / { index index.html; root /usr/share/nginx/html; } # redmine location /redmine { proxy_pass http://redmine; } } }
試したこと
nginxコンテナのホスト側ポートを80 で設定するとリダイレクト先は
http://ホストIP:ホストport/redemine のままですが正しく表示されます。
nginx.confのlocation /redmineのセクションでproxy_redirectやrewriteでURLの書き換えなど試していましたが
状況は変わりませんでした。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。