美文网首页
Docker Nignx 配置

Docker Nignx 配置

作者: Hahn_z | 来源:发表于2022-06-06 14:01 被阅读0次

本文环境

docker: 3.4.2
nginx: 1.21.6

下载nignx

docker pull nginx

启动nginx

docker run --name nginx -p 80:80 -d nginx

拷贝容器里配置文件

在你服务器目录下创建conf,html,log三个文件夹 我这里是etc/nginx

# 创建文件夹
mkdir -p ./nginx/{conf,html,logs}

将容器内的nginx.confdefault.conf文件分别拷贝到/etc/nginx(根据你目录来)下,分别执行

# 拷贝 nginx.conf
docker cp image_id:/etc/nginx/nginx.conf /etc/nginx
# 拷贝 default.conf
dokcer cp image_id:/etc/nginx/conf.d/default.conf /etc/nginx

删除原来nginx容器

# image_id是指你容器id
docker stop image_id
docker rm image_id

启动

docker run --name nginx -p 80:80 -v  /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -v  /etc/nginx/logs:/var/log/nginx -v  /etc/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /etc/nginx/html:/usr/share/nginx/html  -d nginx

--name 容器名字

-v 挂载文件

# :/是指容器里面的路径 将容器nginx.conf文件挂载到自己服务器目录下的nginx.conf
-v  /etc/nginx/nginx.conf:/etc/nginx/nginx.conf
# :/是指容器里面的路径 将容器log挂载到自己服务器目录下的logs
-v  /etc/nginx/logs:/var/log/nginx
# :/是指容器里面的路径 将容器default.conf挂载到自己服务器目录下的default.conf
-v  /etc/nginx/default.conf:/etc/nginx/conf.d/default.conf
# :/是指容器里面的路径 将容器html挂载到自己服务器目录下的html 在html我是放项目路径
-v  /etc/nginx/html:/usr/share/nginx/html

usr/share/nginx/html是default.conf的默认放在资源路径文件。需要跑项目的需要设置对应挂载和default.conf

编辑nginx配置文件

default.conf是默认文件

server {
    listen       80; # 端口
    listen  [::]:80;
    server_name  xxx.com; # 域名

    location / {
        # usr/share/nginx/html 是默认放置资源路径
        # /etc/nginx/html 是挂载的路径
        # 假设文件放到etc/nginx/html/xxx ,本地需要写/usr/share/nginx/html/xxx
        root   /usr/share/nginx/html/xxx; 
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}


server
{
    listen 8080; # 端口
    server_name xxx.xxx.com; # 多域名配置
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8080;
    }
}

server {
    listen       8080 default_server; # 端口
    listen       [::]:8080 default_server; # 子域名
    server_name  _;
    # usr/share/nginx/html 是默认放置资源路径
    # /etc/nginx/html 是挂载的路径
    # 假设文件放到etc/nginx/html/xxx ,本地需要写/usr/share/nginx/html/xxx
    root   /usr/share/nginx/html/xxx; 

    # Load configuration files for the default server block.
    # include /etc/nginx/default.d/*.conf;

    location / {

    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

server {
    listen 443 ssl; # SSL端口
    server_name xxx.xxx.com; # SSL 配置

    # usr/share/nginx/html 是默认放置资源路径
    # /etc/nginx/html 是挂载的路径
    # 假设文件放到etc/nginx/html/xxx.pem ,本地需要写/usr/share/nginx/html/xxx.pem
    ssl_certificate /etc/nginx/html/xxx.pem;
    ssl_certificate_key /etc/nginx/html/xxx.key;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
    }
}

server {
    listen 443 ssl; # SSL端口
    server_name api.xxx.com; # 多SSL 配置

    # usr/share/nginx/html 是默认放置资源路径
    # /etc/nginx/html 是挂载的路径
    # 假设文件放到etc/nginx/html/xxx.pem ,本地需要写/usr/share/nginx/html/xxx.pem
    ssl_certificate /etc/nginx/html/xxx.pem;
    ssl_certificate_key /etc/nginx/html/xxx.key;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:10001;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
    }
}

重启

# image_id是指你容器id
docker stop image_id
docker start image_id

相关文章

  • Docker Nignx 配置

    本文环境 docker: 3.4.2nginx: 1.21.6 下载nignx docker pull nginx...

  • docker-compse 启动nginx

    模板如下: 启动命令:docker-compose -f docker-compose-nignx.yaml up -d

  • node nignx代理 静态资源处理

    nignx相关的基本操作(mac下) 1.nignx 当前启动的 配置文件路径查找:命令 nginx -t 2....

  • Docker-compose命令

    #构建建启动nignx容器(或 redis、mysql)docker-compose up -d nginx#登录...

  • Nignx 配置反向代理

    解决问题:使用nignx完成http转https和二级域名转发,将已有http通信的web前端转为https,包括...

  • 利用$host 封指定的域名

    域名被攻击,借此使用nignx 自带的rewrite 功能封掉该域名,在虚拟机的server 配置段下做如下配置:...

  • openstack离线kolla镜像

    安装docker 更改docker配置文件/etc/docker/daemon.json 重启docker 配置/...

  • centos7安装docker

    centos7安装docker 安装docker 启动docker 修改配置 配置生效

  • nginx设置站点

    找到nignx的配置文件nginx.conf在配置文件,找到http,每设置一个站点,就增加一个server 以下...

  • Yapi部署并迁移文档

    安装node.js 8.15 安装mongodb4.05 安装git和pm2 安装并启动yapi 配置nignx

网友评论

      本文标题:Docker Nignx 配置

      本文链接:https://www.haomeiwen.com/subject/gbdjmrtx.html