使用docker构建nginx实现端口映射
实验环境:docker 的版本是1.12.3文件目录结构:|-docker-compose.yml|-nginx -|Dockerfile -|hc.html -|index.html -|pst-http.conf编写docker-co
·
实验环境:docker 的版本是1.12.3
文件目录结构:
|-docker-compose.yml
|-nginx
-|Dockerfile
-|hc.html
-|index.html
-|pst-http.conf
编写docker-compose.yml文件
version: '2'
services:
nginx:
build: ./nginx
ports:
- 80:80
networks:
jznet:
ipv4_address: 172.18.4.30
restart: always
access:
image: reg-mirror.shie.site/pst-test/access:devsit_0.0.3
networks:
jznet:
ipv4_address: 172.18.4.24
volumes:
- ./logs/access/:/usr/local/tomcat/logs/
environment:
- ENV_NAME=devsit
- JAVA_OPTS=-Xmx1024m -Xms1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+PrintGCDetails -XX:+PrintGCDateStamps
expose:
- 8080
- 20881
ports:
- 9090:8080
networks:
jznet:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.18.4.0/26
编写Dockerfile文件
FROM reg-mirror.shie.site/shie-base/nginx:ssl
RUN rm /etc/nginx/conf.d/default.conf
RUN rm /etc/nginx/conf.d/ssl.conf
ADD pst-http.conf /etc/nginx/conf.d/pst-http.conf
ADD hc.html /etc/nginx/html/hc.html
ADD index.html /etc/nginx/html/index.html
编写pst-http.conf
upstream access.server {
server 172.18.4.24:8080 weight=1 max_fails=3 fail_timeout=60s;
}
server {
listen 80;
server_name localhost;
location /access {
proxy_pass http://access.server/access;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_next_upstream error timeout invalid_header http_502 http_500;
}
}
hc.html 和index.html里面编写任意内容就可以,以便启动nginx之后可以访问这些页面以作校验
之后使用docker-compose up -d nginx 的命令从基础镜像reg-mirror.shie.site/shie-base/nginx:ssl根据Dockerfile里面的配置构建出我们需要的nginx服务器
当宿主机器里面的nginx启动起来之后,系统外部的用户就可以通过80端口访问acces应用了。
而且当我们需要添加应用的时候我们只需要添加nginx的pst-http.conf一段配置就可以实现对其他应用的端口消息转发。这样一来对于端口的映射管理我们就可以很方便了,而且当我们需要向外网暴露应用的时候只需要暴露nginx的80端口就可以使得宿主机器内的其他应用也实现外网映射功能。
更多推荐
已为社区贡献3条内容
所有评论(0)