mac系统 docker 配置 nginx 反向代理案例

使用mac运行docker容器,遇到了很多坑,比如本地无法访问容器ip什么的,导致配置nginx案例时,花费了很长时间,最终不断尝试,终于配置出了nginx的反向代理案例,有问题,欢迎提问,一起进步~

1. 实现效果

(1)打开浏览器,在浏览器地址栏输入地址 www.123.com,通过nginx反向代理跳转到docker容器tomcat主页面中

mac系统 docker 配置 nginx 反向代理案例插图

2. 具体实现

(1)拉取nginx镜像

docker pull nginx

(2) 拉取tomcat镜像

docker pull tomcat

(3)查看本地已经安装的镜像,如果有我们刚拉取的镜像:

docker images

mac系统 docker 配置 nginx 反向代理案例插图1

(4) 分别运行nginx、tomcat 容器

4.1 nginx 为了方便配置 使用数据卷挂载(准备)

4.1.1 创建 Nginx 临时容器,用于拷贝所需配置文件

docker run –name tmp-nginx -d nginx

4.1.2 拷贝 Nginx 配置文件

docker cp tmp-nginx:/etc/nginx/nginx.conf /Users/yinmb/docker/nginx/nginx.conf

4.1.3 拷贝默认配置文件:

docker cp tmp-nginx:/etc/nginx/conf.d/default.conf /Users/yinmb/docker/nginx/conf.d/default.conf

4.1.4 强制删除临时nginx容器

docker rm -f tmp-nginx

4.2 运行Nginx 容器 并映射 Nginx 配置文件站点配置文件目录

docker run –name nginx -p 80:80 -v /Users/yinmb/docker/nginx/nginx.conf:/etc/nginx/nginx.conf -v /Users/yinmb/docker/nginx/conf.d:/etc/nginx/conf.d -d nginx

4.3 运行tomcat

docker run –name tomcat -p 8080:8080 -d tomcat

4.4 docker ps 查看运行的容器

mac系统 docker 配置 nginx 反向代理案例插图2

(5) 配置mac的hosts文件,添加:127.0.0.1 www.123.com

vim /etc/hosts

mac系统 docker 配置 nginx 反向代理案例插图3

(6)配置nginx 文件

vim /Users/yinmb/docker/nginx/conf.d/default.conf

mac系统 docker 配置 nginx 反向代理案例插图4

server {

listen 80;

server_name 172.17.0.3;

#charset koi8-r;

#access_log /var/log/nginx/host.access.log main;

location / {

root /usr/share/nginx/html;

proxy_pass http://172.17.0.4:8080;

index index.html index.htm;

}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80

#

#location ~ \.php$ {

# proxy_pass http://127.0.0.1;

#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#

#location ~ \.php$ {

# root html;

# fastcgi_pass 127.0.0.1:9000;

# fastcgi_index index.php;

# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

# include fastcgi_params;

#}

# deny access to .htaccess files, if Apache's document root

# concurs with nginx's one

#

#location ~ /\.ht {

# deny all;

#}

}

6.1 查看容器ip 命令(补充)

docker inspect nginx

原文链接:https://blog.csdn.net/yinmb777/article/details/103223936

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享