要使nginx与Docker息息相关,我有一个非常简单的**/out/crashlytics-build.properties
文件+ nginx.conf
,可以为1个服务运行2个容器(服务本身+ db)。
我要什么:
docker-compose
->显示静态页面
localhost
->显示另一个静态页面
localhost/pics
->重定向到我的容器,该容器在端口3001上运行。
最后一部分(重定向到docker-container)不起作用。可以在localhost/wekan
下访问该应用。
我的nginx.conf:
localhost:3001
docker-compose.yml:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
server{
listen 80;
location / {
root /home/user/serverTest/up1; #index.html is here
}
location /wekan {
proxy_pass http://localhost:3001;
rewrite ^/wekan(.*)$ $1 break; # this didnt help either
}
location /pics {
proxy_pass http://localhost/example.jpg;
}
location ~ \.(gif|jpg|png)$ {
root /home/user/serverTest/data/images;
}
}
看看nginx错误日志,我得到了:
version: '2'
services:
wekandb:
image: mongo:3.2.21
container_name: wekan-db
restart: always
command: mongod --smallfiles --oplogSize 128
networks:
- wekan-tier
expose:
- 27017
volumes:
- /home/user/wekan/wekan-db:/data/db
- /home/user/wekan/wekan-db-dump:/dump
wekan:
image: quay.io/wekan/wekan
container_name: wekan-app
restart: always
networks:
- wekan-tier
ports:
# Docker outsideport:insideport
- 127.0.0.1:3001:8080
environment:
- MONGO_URL=mongodb://wekandb:27017/wekan
- ROOT_URL=http://localhost
所以我认为这是有道理的,因为据我了解,nginx现在将重定向添加到给定的@ /根目录下,但是显然这不是容器运行的地方。
我该如何预防?
答案 0 :(得分:0)
您的nginx无法访问您的docker组合的本地网络接口。
尝试像这样绑定SELECT work_data.*, endorsement.user FROM work_data LEFT JOIN endorsement ON work_data.pid=endorsement.pid;
| pid | title | user |
| -- | -- | -- |
| 10.1111/11 | 'Some article that has an endorsement' | 1 |
| 10.2222/22 | 'Some other article that does not have an endorsement' | NULL |
的端口:
wekan
注意wekan:
ports:
- 127.0.0.1:3001:8080
答案 1 :(得分:0)
问题出在docker-compose
配置内。
对于任何想知道的人,您只需要通过代理addr:port
或addr:port/
,而第二个选项与重写部分相同,因此可以跳过。
除此之外,我还必须将/ wekan添加到ROOT_URL
内的docker-compose
中