docker配置nginx服务
一,准备宿主机配置文件目录
cd /home sudo mkdir -p nginx/{conf.d,logs}
二,编写nginx配置文件
cd conf.d/ touch 8199.conf vim 8199.conf
server { listen 8199; listen [::]:8199; server_name localhost; access_log /var/log/nginx/mapvr.log; error_log /var/log/nginx/mapvr.log debug; location / { root /nginx_web/mapvr; #默认加载的第一个文件 index index.html index.htm; #页面加载失败后所跳转的页面 try_files $uri $uri/ =404; } }
注意:此nginx将在docker内部运行,root不能写宿主机目录,需要写一个docker-宿主机的映射目录。docker中/nginx_web目录映射着宿主机/home/shimon/nginx_web(docker run时配置),web站点都需要放入物理机/home/shimon/nginx_web
cd conf.d touch 8299.conf vim 8299.conf
注意proxy_pass,因为是docker内部运行,127.0.0.1/localhost代表docker环境内部,不能直接使用。使用程序在宿主机中的ip和port。或者创建一个桥接,使用桥接的ip访问宿主机
server { listen 8299; server_name _; access_log /var/log/nginx/8299.log; error_log /var/log/nginx/8299.log debug; location / { proxy_pass http://192.168.0.1:9475; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; } }
创建桥接,通过 192.168.0.1 访问宿主机
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 localNet
三,启动容器
sudo docker run --name redirect_nginx -p 8299:8299 -p 8199:8199 -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/logs:/var/log/nginx/ -v /home/shimon/nginx_web:/nginx_web --privileged=true -d --restart=always nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通