Docker
nginx
docker pull nginx
Mac上挂载
- 创建些文件夹
mkdir -p /Users/hsx/docker/nginx/html
mkdir -p /Users/hsx/docker/nginx/conf
mkdir -p /Users/hsx/docker/nginx/conf.d
- 先运行nginx拷贝出里面的一些关键文件到宿主机,然后删除这个nginx容器
# 生成容器
docker run --name nginx -p 9001:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /Users/hsx/docker/nginx/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /Users/hsx/docker/nginx/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /Users/hsx/docker/nginx/html
- 编写conf.d的脚本
host.docker.internal
代表宿主机ip
http://heima-app-gateway/$1;
的$1
代表的是~/app/(.*)
中(.*)
的内容
upstream heima-app-gateway{
server host.docker.internal:51601;
}
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html;
}
location ~/app/(.*) {
proxy_pass http://heima-app-gateway/$1;
proxy_set_header HOST $host; # 不改变源请求头的值
proxy_pass_request_body on; #开启获取请求体
proxy_pass_request_headers on; #开启获取请求头
proxy_set_header X-Real-IP $remote_addr; # 记录真实发出请求的客户端IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理信息
}
}
- 将index.html等文件放到html文件夹下
- 运行nginx,并挂载编写的文件
docker run --name nginx -d -p 8088:80 \
-v /Users/hsx/docker/nginx/conf.d:/etc/nginx/conf.d \
-v /Users/hsx/docker/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/hsx/docker/nginx/html:/usr/share/nginx/html nginx
- 访问http://localhost:9001/