Browse Source

app on base domain, api (drupal) on subpath /api

bach 3 years ago
parent
commit
718662c56e

+ 0 - 0
Docker/php/Dockerfile → Docker/api/Dockerfile


+ 0 - 0
Docker/php/bashrc → Docker/api/bashrc


+ 0 - 0
Docker/php/inputrc → Docker/api/inputrc


+ 0 - 0
Docker/php/php-custom.ini → Docker/api/php-custom.ini


+ 0 - 0
Docker/php/php-fpm-custom.conf → Docker/api/php-fpm-custom.conf


+ 0 - 0
Docker/php/rsyslog-drupal.conf → Docker/api/rsyslog-drupal.conf


+ 0 - 0
Docker/php/rsyslog.service → Docker/api/rsyslog.service


+ 4 - 0
Docker/nginx/Dockerfile

@@ -1,5 +1,9 @@
 FROM nginx:latest
 
+RUN apt-get update \
+    && apt-get install -y \
+        vim
+
 COPY ./default.conf /etc/nginx/conf.d/default.conf
 COPY ./bashrc /root/.bashrc
 COPY ./inputrc /root/.inputrc

+ 56 - 14
Docker/nginx/default.conf

@@ -1,36 +1,78 @@
+upstream app{
+    server app:8988;
+}
+
 server {
     listen 80 default_server;
-    root /var/www/html/api/src/web;
+    # root /var/www/html/api/src/web;
+    # root /var/www/html/app/dist;
     index index.html index.php;
     server_name *.enfrancais.fr;
 
     charset utf-8;
 
     location / {
-        try_files $uri $uri/ /index.php?$query_string;
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header Host $http_host;
+      proxy_set_header X-NginX-Proxy true;
+      proxy_set_header X-Ssl on;
+
+      proxy_pass http://app;
+      proxy_redirect off;
+    }
+
+    # https://serversforhackers.com/c/nginx-php-in-subdirectory
+    location @api {
+        rewrite ^/api/(.*)$ /api/index.php;
+    }
+
+
+    location /api {
+      # rewrite /api/(.*)$ /$1 break;
+      # root /var/www/html/api/src/web;
+      alias /var/www/html/api/src/web/;
+      # index index.php;
+      # try_files $uri $uri/ /index.php?$query_string;
+      try_files $uri $uri/ @api;
+
+      error_log  /var/log/nginx/api-error.log debug;
+
+      location ~ \.php$ {
+          fastcgi_split_path_info ^(.+\.php)(/.+)$;
+          fastcgi_pass api:9000;
+          fastcgi_index index.php;
+          include fastcgi_params;
+          fastcgi_param SCRIPT_FILENAME $request_filename;
+          fastcgi_intercept_errors off;
+          fastcgi_buffer_size 16k;
+          fastcgi_buffers 4 16k;
+          fastcgi_read_timeout 150;
+      }
+
     }
 
     location = /favicon.ico { access_log off; log_not_found off; }
     location = /robots.txt  { access_log off; log_not_found off; }
 
     access_log on;
-    error_log  /var/log/nginx/error.log error;
+    error_log  /var/log/nginx/app-error.log error;
 
     sendfile off;
 
     client_max_body_size 100m;
 
-    location ~ \.php$ {
-        fastcgi_split_path_info ^(.+\.php)(/.+)$;
-        fastcgi_pass php:9000;
-        fastcgi_index index.php;
-        include fastcgi_params;
-        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
-        fastcgi_intercept_errors off;
-        fastcgi_buffer_size 16k;
-        fastcgi_buffers 4 16k;
-        fastcgi_read_timeout 150;
-    }
+    # location ~ \.php$ {
+    #     fastcgi_split_path_info ^(.+\.php)(/.+)$;
+    #     fastcgi_pass api:9000;
+    #     fastcgi_index index.php;
+    #     include fastcgi_params;
+    #     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+    #     fastcgi_intercept_errors off;
+    #     fastcgi_buffer_size 16k;
+    #     fastcgi_buffers 4 16k;
+    #     fastcgi_read_timeout 150;
+    # }
 
     location ~ /\.ht {
         deny all;

+ 4 - 2
Makefile

@@ -21,6 +21,8 @@ build:
 buildnc:
 		docker-compose build --no-cache --build-arg USER_UID=$(USER_UID) --build-arg USER_UNAME=$(USER_UNAME) --build-arg USER_GID=$(USER_GID) --build-arg USER_GNAME=$(USER_GNAME)
 
+downbuildup: down build up
+
 up:
 		docker-compose up -d
 
@@ -36,8 +38,8 @@ logs:
 down:
 		docker-compose down
 
-exec_php:
-		docker exec -it enfrancais_php_1 bash
+exec_api:
+		docker exec -it enfrancais_api_1 bash
 
 exec_app:
 		docker exec -it enfrancais_app_1 sh

+ 1 - 1
api

@@ -1 +1 @@
-Subproject commit f0966cea3f6007c47244141062fda747f062904c
+Subproject commit 4459a24dad030224221585015a652caeadc165fe

+ 29 - 24
docker-compose.yml

@@ -27,8 +27,19 @@ services:
     ports:
       - "6389"
 
-  php:
-    build: ./Docker/php/
+  phpmyadmin:
+    image: phpmyadmin/phpmyadmin
+    ports:
+      - 8991:80
+    networks:
+      - database
+    depends_on:
+      - mysql
+    environment:
+      PMA_HOSTS: mysql,mysql-legacy
+
+  api:
+    build: ./Docker/api/
     expose:
       - 9000
     user: ${USER_UID}:${USER_GID}
@@ -45,16 +56,20 @@ services:
       - mysql
       - redis
 
-  phpmyadmin:
-    image: phpmyadmin/phpmyadmin
-    ports:
-      - 8991:80
+  app:
+    build: ./Docker/app
+    user: ${USER_UID}:${USER_GID}
+    volumes:
+      - "${APP_ROOT}:/app"
+      - npm-user-data:/home/${USER_UNAME}
     networks:
-      - database
-    depends_on:
-      - mysql
+      - app
+      - server
+    ports:
+      - 8988:8988
+    working_dir: "/app"
     environment:
-      PMA_HOSTS: mysql,mysql-legacy
+      - APP_ENV=dev
 
   nginx:
     build: ./Docker/nginx/
@@ -68,20 +83,9 @@ services:
     networks:
       - server
     depends_on:
-      - php
-
-  app:
-    build: ./Docker/app
-    user: ${USER_UID}:${USER_GID}
-    volumes:
-      - "${APP_ROOT}:/app"
-      - npm-user-data:/home/${USER_UNAME}
-    ports:
-      - 8988:8988
-    working_dir: "/app"
-    environment:
-      - APP_ENV=dev
-
+      - api
+      - app
+    # command: [nginx-debug, '-g', 'daemon off;']
 
 volumes:
     php-user-data:
@@ -93,3 +97,4 @@ networks:
     database:
     redis:
     server:
+    app: