在 phpmyadmin 上找不到 404 - nginx docker
404 not found on phpmyadmin - nginx docker
我想 运行 phpmyadmin 和我的 API 在同一个域中使用 docker 和 nginx,如:
api => localhost:8888/
phpmyadmin => localhost:8888/phpmyadmin/
Docker phpmyadmin 服务配置:
phpmyadmin:
image: phpmyadmin
restart: always
environment:
PMA_ARBITRARY: 1
PMA_HOST: mysql
PMA_USER: ${DATABASE_USER}
PMA_PASSWORD: ${DATABASE_PASSWORD}
depends_on:
- mysql
这是 nginx 服务配置:
nginx:
image: nginx:stable-alpine
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- api
- phpmyadmin
restart: always
ports:
- '8888:80'
这是 nginx 配置文件:
upstream pma {
server phpmyadmin;
}
server {
listen 80;
server_name localhost;
# resolver 127.0.0.1;
location / {
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_pass http://api:8889/;
proxy_redirect off;
}
location ~/phpmyadmin(.*)$ {
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_pass http://pma//;
proxy_redirect off;
}
}
一切正常,我可以使用 API,因为 localhost:8888/url
而且它工作正常。但是当我请求 localhost:8888/phpmyadmin/
时,它加载了它,但是 js 和所有 css 给出了 404 未找到,这是控制台预览:
为了解决这个问题我绞尽脑汁花了3个多小时,尽了最大的努力,但还是不行。我对 nginx 很陌生,所以任何人都可以帮助我。
您是否尝试在 docker phpmyadmin 服务环境中添加 PMA_ABSOLUTE_URI
?结帐 this:
PMA_ABSOLUTE_URI
- the full URL to phpMyAdmin. Sometimes needed when used in a reverse-proxy configuration.
像这样添加:
PMA_ABSOLUTE_URI: localhost:8888/phpmyadmin/
请注意最后的/
,非常非常重要,错过了将无法正常工作。
我想 运行 phpmyadmin 和我的 API 在同一个域中使用 docker 和 nginx,如:
api => localhost:8888/
phpmyadmin => localhost:8888/phpmyadmin/
Docker phpmyadmin 服务配置:
phpmyadmin:
image: phpmyadmin
restart: always
environment:
PMA_ARBITRARY: 1
PMA_HOST: mysql
PMA_USER: ${DATABASE_USER}
PMA_PASSWORD: ${DATABASE_PASSWORD}
depends_on:
- mysql
这是 nginx 服务配置:
nginx:
image: nginx:stable-alpine
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- api
- phpmyadmin
restart: always
ports:
- '8888:80'
这是 nginx 配置文件:
upstream pma {
server phpmyadmin;
}
server {
listen 80;
server_name localhost;
# resolver 127.0.0.1;
location / {
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_pass http://api:8889/;
proxy_redirect off;
}
location ~/phpmyadmin(.*)$ {
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_pass http://pma//;
proxy_redirect off;
}
}
一切正常,我可以使用 API,因为 localhost:8888/url
而且它工作正常。但是当我请求 localhost:8888/phpmyadmin/
时,它加载了它,但是 js 和所有 css 给出了 404 未找到,这是控制台预览:
为了解决这个问题我绞尽脑汁花了3个多小时,尽了最大的努力,但还是不行。我对 nginx 很陌生,所以任何人都可以帮助我。
您是否尝试在 docker phpmyadmin 服务环境中添加 PMA_ABSOLUTE_URI
?结帐 this:
PMA_ABSOLUTE_URI
- the full URL to phpMyAdmin. Sometimes needed when used in a reverse-proxy configuration.
像这样添加:
PMA_ABSOLUTE_URI: localhost:8888/phpmyadmin/
请注意最后的/
,非常非常重要,错过了将无法正常工作。