From f028629de713afb8f8644ed052097dfa5579dffd Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Thu, 29 May 2025 17:27:58 +0800 Subject: [PATCH] =?UTF-8?q?Laravel=20=E7=AC=AC=E4=B8=80=E7=89=88=20?= =?UTF-8?q?=E8=AA=BF=E6=95=B4=20Nginx=20=E4=BD=88=E7=BD=AE=2020250529?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.letsencrypt.yaml | 13 ++++++++++++ docker-compose.yaml | 32 +++++++++++++++--------------- docker/nginx/default.conf.template | 25 +++++++++++++++++++++++ 3 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 docker/nginx/default.conf.template diff --git a/docker-compose.letsencrypt.yaml b/docker-compose.letsencrypt.yaml index 7d08621..b20fe06 100644 --- a/docker-compose.letsencrypt.yaml +++ b/docker-compose.letsencrypt.yaml @@ -1,4 +1,17 @@ services: + nginx-proxy: + image: jwilder/nginx-proxy + container_name: ${PROJECT_NAME}_nginx_proxy + ports: + - "80:80" + - "443:443" + volumes: + - /var/run/docker.sock:/tmp/docker.sock:ro + - ./certs:/etc/nginx/certs + - ./vhost.d:/etc/nginx/vhost.d + - ./html:/usr/share/nginx/html + networks: + - nginx_proxy letsencrypt: image: jrcs/letsencrypt-nginx-proxy-companion container_name: ${PROJECT_NAME}_letsencrypt diff --git a/docker-compose.yaml b/docker-compose.yaml index 63314c3..3ee15bf 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -20,9 +20,7 @@ services: DB_USERNAME: ${DB_USERNAME} DB_PASSWORD: ${DB_PASSWORD} networks: - - nginx_proxy - expose: - - "80" + - app_network mariadb: image: mariadb:10.6 @@ -38,25 +36,27 @@ services: ports: - "3306:3306" networks: - - nginx_proxy + - app_network - nginx-proxy: - image: jwilder/nginx-proxy - container_name: ${PROJECT_NAME}_nginx_proxy + nginx: + image: nginx:stable-alpine + container_name: ${PROJECT_NAME}_nginx ports: - - "80:80" - - "443:443" + - "8080:80" volumes: - - /var/run/docker.sock:/tmp/docker.sock:ro - - ./certs:/etc/nginx/certs - - ./vhost.d:/etc/nginx/vhost.d - - ./html:/usr/share/nginx/html + - ./data:/var/www + - ./docker/nginx/default.conf.template:/etc/nginx/conf.d/default.conf.template + depends_on: + - app + environment: + APP_DOMAIN: ${APP_DOMAIN} + command: /bin/sh -c "envsubst '\$APP_DOMAIN' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" networks: - - nginx_proxy + - app_network volumes: dbdata: networks: - nginx_proxy: - name: nginx_proxy \ No newline at end of file + app_network: + name: app_network \ No newline at end of file diff --git a/docker/nginx/default.conf.template b/docker/nginx/default.conf.template new file mode 100644 index 0000000..5f9d765 --- /dev/null +++ b/docker/nginx/default.conf.template @@ -0,0 +1,25 @@ +server { + listen 80 default_server; + server_name __APP_DOMAIN__; + + 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?$query_string; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass app:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + + location ~ /\.ht { + deny all; + } +} \ No newline at end of file