質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

1652閲覧

【Docker, nginx】port指定でアクセスした時にトレイリングスラッシュ無しだとport番号が強制的になくなる問題

zushi0905

総合スコア683

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

1グッド

1クリップ

投稿2020/06/23 15:42

編集2022/01/12 10:55

#前提条件
localでの開発にDockerを用い、nginxのポートフォアードを1111番で指定しています。

この時にトレイルスラッシュありでのアクセスは問題なく行われますが、
( localhost:1111/manage/ => localhost:1111/manage/ )
無しの場合だとport番号の指定がなくなりトレイスラッシュが付与されるという現象が起きます。
( localhost:1111/manage => localhost/manage/ )

#環境

  • Docker 18.09.2
  • nginx 1.19.0
  • php 7.2
  • mysql:5.7

#docker-compose

yml

1version: '3' 2services: 3 nginx: 4 image: nginx:latest 5 ports: 6 - ${NGINX_HOST_HTTP_PORT}:80 7 volumes: 8 - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf 9 - ${USER_PROJECT_PATH}:/var/www/html 10 depends_on: 11 - php 12 13 php: 14 build: ./php 15 volumes: 16 - ${USER_PROJECT_PATH}:/var/www/html 17 depends_on: 18 - db 19 20 db: 21 image: mysql:5.7 22 environment: 23 - MYSQL_ROOT_PASSWORD=root 24 ports: 25 - '${MYSQL_PORT}:3306' 26 volumes: 27 - ${DATA_PATH_HOST}/mysql:/var/lib/mysql 28 29 phpmyadmin: 30 image: phpmyadmin/phpmyadmin:latest 31 ports: 32 - ${PMA_PORT}:80 33 depends_on: 34 - db

env

1# Point to the path of your applications code on your host 2USER_PROJECT_PATH=ローカルプロジェクトのパス 3 4# Choose storage path on your machine. For all storage systems 5DATA_PATH_HOST=ホームディレクトリのdata隠しファイルパス 6 7# MySql view port at local machine 8# When using mysql port in docker network, must use default mysql port (3306) 9MYSQL_PORT=3308 10 11# PhpMyAdmin view port at local machine 12PMA_PORT=8888 13 14# HTTP acceess port at local machine to project deployed in docker (80) 15NGINX_HOST_HTTP_PORT=1111

nginx

nginx.conf

server { listen 80; server_name _; root /var/www/html/public; index index.php index.html; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

nginxの設定ではないかと考えていますが、いまいち分かっていません。
phpの設定等は関係ないと考えているので割愛させてもらいますが、必要であれば追記します。
些細なことでも構いません。ご助言お願いいたします。

Diawel👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問