在我的專案中,我使用的是 Django 和 nginx,但我想通過 phpmyadmin 來管理我的云資料庫。
Django 作業正常,但我不能對 phpmyadmin 做同樣的事情,因為它在 localhost:8080 的 apache 中運行,而我希望它在 localhost/phpmyadmin 的 nginx 中運行。
這是 docker-compose.yml
version: "3.9"
services:
web:
restart: always
build:
context: .
env_file:
- .env
volumes:
- ./project:/project
expose:
- 8000
nginx:
restart: always
build: ./nginx
volumes:
- ./static:/static
ports:
- 80:80
depends_on:
- web
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_HOST: <host_address>
PMA_USER: <user>
PMA_PASSWORD: <password>
PMA_PORT: 3306
UPLOAD_LIMIT: 300M
ports:
- 8080:80
和 nginx default.conf
upstream django{
server web:8000;
}
server{
listen 80;
location / {
proxy_pass http://django;
}
location /pma/ {
proxy_pass http://localhost:8080/;
proxy_buffering off;
}
location /static/ {
alias /static/;
}
}
我希望有人能告訴我如何讓 nginx 作為 phpMyAdmin docker 容器的反向代理作業。
如果缺少一些重要資訊,請告訴我。
uj5u.com熱心網友回復:
您可以使用其主機名和內部埠(不是公開的埠)訪問另一個 docker 容器。還需要重寫 url。
location ~ \/pma {
rewrite ^/pma(/.*)$ $1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://phpmyadmin;
}
我用這個 docker-compose.yml 進行了測驗:
version: "3.9"
services:
nginx:
image: nginx:latest
volumes:
- ./templates:/etc/nginx/templates
ports:
- 80:80
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/465878.html
標籤:django 码头工人 nginx phpmyadmin nginx-反向代理
上一篇:Laravel$request->name和request('name')之間有什么不同
下一篇:如何寫好B端產品的技術方案?
