我使用以下撰写文件运行两个centos docker容器 -
version: "2"
services:
nginx:
build:
context: ./docker-build
dockerfile: Dockerfile.nginx
restart: always
ports:
- "8080:8080"
command: "/usr/sbin/nginx"
volumes:
- ~/my-dir:/my-dir
data:
build:
context: ./docker-build
dockerfile: Dockerfile.data
restart: always
ports:
- "8081:8081"
command: "/usr/sbin/nginx"
volumes:
- ~/my-dir-1:/my-dir-1
我已经在两个容器中使用Dockerfile安装了nginx来访问特定目录。
尝试使用nginx将请求http://host-IP:8080/my-data/
重定向到data
容器。
以下是nginx
容器
/etc/nginx/conf.d/default.conf
server {
listen 8080;
location / {
root /my-dir/;
index index.html index.htm;
}
}
我可以使用my-dir
网址访问http://host-IP:8080
目录,使用my-dir-1
网址访问http://host-IP:8081
,如何在data
容器上配置Nginx重定向请求使用http://host-IP:8080/my-data
网址
答案 0 :(得分:0)
我真的没有得到你的应用的用例,你为什么这样做。
但你可以使用代理,未经测试的代码来查找文档但是这样的事情。
http {
upstream data_container {
server data:8081;
}
server {
listen 8080;
location / {
root /my-dir/;
index index.html index.htm;
}
location /my-data {
proxy-pass http://data_container$request_uri;
}
}
}
答案 1 :(得分:0)
nginx.conf 文件
http {
server {
listen 80;
location /api {
proxy_pass http://<SERVICE_NAME>:8080/my-api/;
}
location /web {
proxy_pass http://<SERVICE_NAME>:80/my-web-app/;
}
}
}
events { worker_connections 1024; }
注意:/ my-api和/ my-web-app是应用程序上下文路径。 SERVICE_NAME是在docker-compose.yml文件中为每个服务指定的名称。
Dockerfile (用于Nginx)
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
现在通过
访问网址答案 2 :(得分:0)
如果您在这里寻找 WebSocket conf 是:
server {
server_name _;
location /ws {
proxy_pass http://localhost:8888;
# this is the key to WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://localhost:8889;
}
}
快乐编码:)