docker 部署nginx
docker run --net host \
--name nginx --restart always \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/conf:/etc/nginx \
-d nginx:latest
其中–net host 非常重要,代表着nginx可以监听虚拟机其他端口,如果采用docker提供的映射端口 -p 80:80 将导致docker部署的nginx只能访问80端口。
那么如何使用nginx访问内网中其他app呢?比如nacos,比如jenkins,比如minio,kibana等等
向nacos、jenkins这些有独立前缀或者可以设置访问路径前缀的都可以用 nginx location 正则匹配。
这样配置后就可以通过
h
o
s
t
:
{host}:
host:{端口}/${访问前缀} 访问到对应服务.
如下图:nacos的
jenkins的
值得一提的是jenkins使用docker部署的时候默认访问前缀是没有jenkins的,不过可以通过配置文件给他加上。
还有一种情况就是有些app找不到如何添加访问前缀的,不能通过location 正则匹配到对应服务时可以采用server监听不同端口实现。
如kibana和minio,必须要 localtion / 才行,不能是localtion /kibana 这种,不然会请求不到对应的静态资源。
kibana: