centos7 nginx监听一个端口转发两个_dockerfile定制自己的nginx

该博客介绍了如何通过Dockerfile在CentOS7上定制Nginx,使其监听一个端口并转发到两个不同的端口。博主提供了所需的配置文件(default.conf, Dockerfile, nginx.repo)详细说明,并演示了如何构建镜像、运行容器,以及如何设置端口映射,使得宿主机的8888和90端口都能触发Nginx的转发规则。" 132529724,12442585,基于SpringBoot的车辆充电桩管理系统设计与实现,"['后端开发', 'spring boot', '课程设计']
摘要由CSDN通过智能技术生成

目标

通过dockerfile定制自己的nginx,可生产使用

模版

一个需要三个文件

[root@localhost nginx]# ls
default.conf Dockerfile nginx.repo
  • default.conf 是我的nginx转发配置文件
  • Dockerfile 是docker的配置文件
  • nginx.repo 容器安装nginx的yum镜像

分别看下

//default.conf 
server {
 listen 80;
 server_name localhost;
 location / {
// 测试地址,我采用宿主机的ip端口,开的web服务
 proxy_pass http://192.168.1.110:8080/;
 proxy_set_header Host $host:80;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Via "nginx";
 }
} 
//Dockerfile,采用centos7作为标准镜像,不用nginx标准镜像原因是因为那样启动的容器是mina版的linux,太简单
FROM centos:centos7
#MAINTAINER 维护者信息
MAINTAINER fendo kai.yang@yeepay.com
ADD default.conf /etc/nginx/conf.d/
ADD nginx.repo /etc/yum.repos.d/
#RUN 执行以下命令
RUN yum install -y nginx
#EXPOSE 映射端口
EXPOSE 80
#CMD 运行以下命令,daemon off后台运行,否则启动完就自动关闭
CMD ["/usr/sbin/nginx", "-g","daemon off;"] 
// nginx.repo ,用于yum直接安装nginx
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1 

操作

  1. 首先进入文件所在目录
[root@localhost nginx]# cd /apps/nginx/
  1. 构建镜像,切记最后有个点,否则会报错( requires exactly 1 argument)
  2. [root@localhost nginx]# docker build -t nginx10 .
  3. 查看镜像

[root@localhost nginx]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx10 latest dd7d54fef2f3 12 minutes ago 283MB

  1. 运行镜像
[root@localhost nginx]# docker run -d -p 8888:80 -p 90:80 dd7d54fef2f3

解释一下,-p 8888:80 -p 90:80表示将宿主机的8888和90都映射到容器的80端口,因为nginx.conf配置的是监听容器的80端口,所以访问宿主机的这两个端口都会触发转发逻辑。同理,如果容器中nginx需要监听多个端口时,也可以借用这种方式配置。看下效果

afd996ec43299ece99252a1d6b88fc78.png
访问90端口

e28a5f3c1063c0f32ee3c80692009b40.png
访问8888端口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值