/dokuwiki를 입력하여 컨테이너에 액세스할 수 있지만 리소스와 링크가 모두 엉망입니다. 내가 지금까지 본 것
dokuwiki 컨테이너에 PHP가 포함되어 있기 때문에 nginx 구성에 무엇을 추가해야 할지 잘 모르겠습니다. 며칠간 다양한 구성으로 작동시키려고 노력했지만 재미가 없었습니다. 어쨌든 관련 세부 사항은 아래에 있으니 시간 내주셔서 감사합니다.
# Contents of nginx/nginx.conf
user nginx;
worker_processes auto;
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;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
upstream docker-adguard-home {
server adguard-home;
}
upstream docker-airsonic {
server airsonic:4040;
}
upstream docker-dokuwiki {
server dokuwiki;
}
현재 home.conf에 모든 서비스가 있으며 일단 모든 서비스가 작동하고 강화되면 분할할 계획입니다.
# contents of nginx/conf/home.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
auth_basic "Authorized users only";
auth_basic_user_file /etc/apache2/.htpasswd;
server_name mydomain.ddns.org 192.168.0.22;
location /media {
root /var/www/;
autoindex on;
}
location /adguard/ {
proxy_cookie_path / /adguard/;
proxy_redirect /login.html /adguard/login.html;
proxy_pass http://docker-adguard-home/;
}
location /airsonic {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Server $host;
proxy_max_temp_file_size 0;
proxy_pass http://docker-airsonic;
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
}
location /dokuwiki/ {
proxy_pass http://docker-dokuwiki/;
}
location / {
root /var/www/html/;
index index.html
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
누군가 복사하려는 경우를 대비해 Docker 작성
version: '3'
services:
nginx:
image: nginx:1.17-alpine
container_name: nginx
restart: always
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/conf/:/etc/nginx/conf.d/:ro
- ./nginx/htpasswd:/etc/apache2/.htpasswd:ro
- ./log/nginx/:/var/log/nginx/
- ./www/html/:/var/www/html/:ro
- ./content/Music:/var/www/media/Music:ro
ports:
- 80:80
- 443:443
networks:
- reverse-proxy
adguard-home:
image: adguard/adguardhome
container_name: adguard-home
restart: always
volumes:
- ./adguard/work:/opt/adguardhome/work
- ./adguard/config:/opt/adguardhome/conf
ports:
- 53:53
- 53:53/udp
networks:
- reverse-proxy
expose:
- 80
airsonic:
image: linuxserver/airsonic
container_name: airsonic
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Dublin
- CONTEXT_PATH=/airsonic #optional
- JAVA_OPTS=-Dserver.use-forward-headers=true
volumes:
- ./airsonic/config:/config
- ./content/Music:/music:ro
- ./airsonic/playlists:/playlists
- ./airsonic/podcasts:/podcasts
restart: unless-stopped
expose:
- 4040
networks:
- reverse-proxy
dokuwiki:
image: linuxserver/dokuwiki
container_name: dokuwiki
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Dublin
#- APP_URL=/dokuwiki #optional
volumes:
- /dokuwiki:/config
networks:
- reverse-proxy
expose:
- 80
restart: unless-stopped
networks:
reverse-proxy:
driver: bridge
답변1
이 글을 읽는 모든 분들을 위해. 결국 Llanetto를 선택했습니다. 마크다운을 렌더링할 뭔가가 필요합니다. 내 문제가 PHP와 관련된 것이라고 의심했지만 더 이상 문제가 되지 않습니다. PHP가 없는 플랫 파일 위키를 찾고 있다면 확인해 보세요.