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

 

posted @ 2022-11-01 14:33  卓扬  阅读(309)  评论(0编辑  收藏  举报