docker学习(6) docker中搭建java服务及nginx反向代理
先看下容器规划:
上图中mysql容器的搭建见上篇博客,service1/2为java rest service,创建脚本如下:
docker run -d -h service1 \ -v /Users/yjmyzz/data/service:/opt/service \ --name service1 \ --link mysql:mysql -p 0.0.0.0:9081:8080 java \ java -jar opt/service/spring-boot-rest-framework-1.0.0.jar docker run -d -h service2 \ -v /Users/yjmyzz/data/service:/opt/service \ --name service2 \ --link mysql:mysql -p 0.0.0.0:9082:8080 java \ java -jar opt/service/spring-boot-rest-framework-1.0.0.jar
注:对外的端口映射可选,因为最后会用nginx转发,暴露出来是为了方便单独测试service1及service2是否正常。
nginx容器的创建脚本如下:
docker run -d -h nginx1 \ -v /Users/yjmyzz/data/nginx/html:/usr/share/nginx/html:ro \ -v /Users/yjmyzz/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \ -v /Users/yjmyzz/data/nginx/conf/conf.d:/etc/nginx/conf.d:ro \ -p 0.0.0.0:9000:80 \ --link service1:service1 \ --link service2:service2 \ --name nginx1 nginx
注:因为nginx1要访问service1/2,所以用了二个link来打通nginx1到service1/2的网络访问,另外有3个-v参数,分别用于映射静态资源、主配置文件、虚拟主机映射文件,最后将80端口映射到mac本机9000端口。
~/data/nginx/conf/nginx.conf参考配置如下:
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; gzip on; include /etc/nginx/conf.d/*.conf; }
~/data/nginx/conf/conf.d/default.conf参考配置如下:
proxy_connect_timeout 5; upstream service_group{ server service1:8080 max_fails=1 fail_timeout=60s; server service2:8080 max_fails=1 fail_timeout=60s; ip_hash; } server { listen 80; server_name localhost; #root /usr/share/nginx/html; #index index.html index.htm; location / { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_pass http://service_group ; proxy_set_header X-Forwarded-For $remote_addr; } location ~ .*\.(js|css)?$ { expires 1h; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
参考文章:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
在阿里云容器服务上创建Spring Boot应用之压测篇
Spring Boot框架的第一个稳定版本是在2014年由Pivotal发布的,该框架的宗旨在于为基于Spring的Web应用提供快速设计开发,并追求小而美、约定胜于配置、快速开发、自包含且便捷。Spring Boot当前开发中的版本是1.4。 上一篇文章“在阿里云容器服务上创建第一个Spring Boot应用”,讲述了如何通过Maven的Docker plugin上传镜像到阿里云的容器Hub,并通过阿里云的容器服务快速在云环境创建应用。本文将描述下,如果在阿里云环境里继续对这个Web应用进行压测,下面我会按照4个步骤进行介绍: 第一步:评估应用的架构 第二步:评估压测的架构 第三步:配置压测任务 第四步:查看压测结果 第一步:评估应用的架构 上一篇我们通过阿里云容器服务给这个Sping Boot服务配置了一条路由规则:容器端口为8
- 下一篇
亲密接触Redis-第一天
引言 nosql,大规模分布式缓存遍天下,Internet的时代在中国由其走得前沿,这一切归功于我国特色的电商。因此nosql、大数据技术在中国应用的比国外还要前沿。从这一章开始我们将开始进入到真正的SOA、PAAS、SAAS、互联网的领域,因此每一篇我都会加入一小段业务的基础知识,让大家在学习技术的同时也可以了解一些业务,这边的业务不是指的business logic不是让大家去做业务人员,而是为大家带来IDEA,”没有做不到只有想不到“,阿里支付宝为什么发了。。。不是技术,而是它的IDEA。 业务基础知识-国内国外电商比较以及为什么电商技术在中国走得这么前沿 14年1月时在上海参加过一个MagentoCom召集的电商峰会。会上一群LAO WAI在那边大谈自己的电商经验,有LV,有ADIDAS,bla...bla...bla...听着听着,真是觉得好笑。休息时随便问一个LAO WAI一个问题: ”你们知道什么叫一元秒杀吗?“ ”你们知道什么7天无理由退货吗?“ ”你们知道什么叫0体验吗?“ ”你们有没有双11,双12,有没有交易量过亿。。。“ LAO WAI ”张嘴,流哈喇子,bil...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8编译安装MySQL8.0.19
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启