我嘗試使用 docker 在我的樹莓派上創建一個小型網路服務器。這是我的 docker-compose 檔案:
version: "3.6"
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- /home/pi/testData/code:/var/www/html
- /home/pi/testData/site.conf:/etc/nginx/conf.d/site.conf
depends_on:
- php
php:
image: php:7.4-fpm
volumes:
- /home/pi/testData/code:/var/www/html
這是我的 site.conf
server {
index index.html index.php;
listen 80;
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html;
location ~ \.php$ {
try_files $uri =404;
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_param PATH_INFO $fastcgi_path_info;
}
}
檔案夾內部/home/pi/testData/code是一個名為的檔案index.php,它只是呼應了一個 Hello World。所以這個檔案將被映射到 Docker 容器的路徑/var/www/html/中,并且里面的site.conf也是提到的根目錄/var/www/html。我還檢查了檔案在 nginx 容器中是否真的可用 - 兩者都是。
據我了解:如果我將索引檔案放在/var/www/html我的 nginx docker 容器的檔案夾中,那么如果我在埠 8080 上呼叫我的 Raspberry pi 的 IP,則應該顯示該檔案。但不幸的是,我只收到 Welcome to Nginx 頁面。
我錯過了什么還是我做錯了什么?
uj5u.com熱心網友回復:
Nginx 將加載在 中找到的組態檔,它們的名稱按字母順序以后綴/etc/nginx/conf.d/結尾。.conf

您的配置確實與 nginx 的默認組態檔有沖突的服務器名稱。/etc/nginx/conf.d/default.conf
您可以通過 exec 進入 nginx 容器并運行nginx -t命令來檢查配置以檢查警告和錯誤。
你應該看到類似的東西:
[warn] 502#502: conflicting server name "localhost" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
您應該將默認檔案重命名為類似的名稱,default.conf.old或者您可以簡單地用您的配置覆寫其內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/487079.html
上一篇:zabbix-dockerdocker-compose.yml理解
下一篇:我可以依賴Docker的輸出嗎?
