docker-compose部署nginx教程

 更新时间:2025年01月04日 10:01:37   作者:与民更始  
文章介绍了如何安装和配置docker-compose,创建一个Nginx容器,并通过docker-compose.yml文件进行配置,包括映射文件夹和自定义转发配置,最后,提供了重启和配置生效的脚本

docker-compose部署nginx

安装docker-compose

创建nginx文件夹

添加docker-compose.yml文件:

version: '3.3'
services:
  web:
    image: "xtulnx/nginx:tengine-latest"
    container_name: nginx
    hostname: s.nginx
    volumes:
      - ./conf.d:/etc/nginx/conf.d
      - ./html:/etc/nginx/html
      - ./data:/data
      - ./logs:/etc/nginx/logs
    # 配置转发时可直接写 proxy:s.dev
    extra_hosts:
      - "s.host:170.170.0.1"
      - "s.dev:127.0.0.1"
    working_dir: /etc/nginx
    ports:
      - "80:80"
      - "443:443"
    environment:
      - NGINX_PORT=80
    restart: always

在当前文件下添加volumes中映射的文件夹

conf.d文件下的default.conf

  log_format custom_log '$remote_addr - $remote_user [$time_local] '
                         '"$request" $status $body_bytes_sent '
                         '"$http_referer" "$http_user_agent" '
                         '$request_body $query_string '
                         '"$http_user_agent" "$http_x_forwarded_for" "$request_uri" '
                         'proxy_to: $upstream_addr';

  log_format  httplog  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" $request_body $query_string'
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_uri"';

  log_format  uplg  '$remote_addr - $remote_user [$time_local] [$upstream_addr] "$request" [$request_body]'
                        '$status $body_bytes_sent "$http_referer" '
                        '"$http_user_agent" "$http_x_forwarded_for"';

  log_format  hu  '$remote_addr - $remote_user [$time_local] "$request" '                                                      
                  '"$status" $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for" '
                  '"$gzip_ratio" $request_time $bytes_sent $request_length' ' $request_body';
    
  access_log  logs/access.log  custom_log;

#   sendfile        on;

  #增加一下websocket配置
  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
  }
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;
#创建de
    include conf.d/*.conf;
    location / {
        # root   /usr/share/nginx/html;
        root   /etc/nginx/html;
        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;
    }

}

自定义的一些转发配置文件例子:

  • user.conf
#重写路径的例子
#rewrite ^/dev_user/(.*\.*)$ /user/$1;


location ^~/user/ {
    #s.dev是nginx的compose里面配置的
	proxy_pass                   http://s.dev:8080/user/;
	#proxy_pass                  http://10.22.22.22:8080/user/;
	proxy_set_header            Host $host;
	proxy_set_header            X-Real-IP $remote_addr;
	proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
	client_max_body_size        100m;
}

配置生效重启

  • 可写成reload.sh:
docker-compose exec web nginx -s reload
#注:exec 正在运行的容器中执行命令:nginx -s reload

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何对已有docker容器增加新的端口映射详解

    如何对已有docker容器增加新的端口映射详解

    最近使用Docker作为容器部署项目的时候,发现有个问题就是容器只能在启动的时候配置预先配置端口,但是往往实际应用的过程中会发现端口不够用,下面这篇文章主要给大家介绍了关于如何对已有docker容器增加新的端口映射的相关资料,需要的朋友可以参考下
    2022-08-08
  • 基于alpine用dockerfile创建的爬虫Scrapy镜像的实现

    基于alpine用dockerfile创建的爬虫Scrapy镜像的实现

    这篇文章主要介绍了基于alpine用dockerfile创建的爬虫Scrapy镜像的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • docker快速搭建私有镜像仓库registry以及registryUI方式

    docker快速搭建私有镜像仓库registry以及registryUI方式

    本文详细介绍了如何在Windows系统上使用Docker搭建私有镜像仓库,并通过registry-web界面进行管理,内容包括环境准备、搭建步骤及上传和下载镜像的操作
    2024-12-12
  • docker中使用mongodb数据库详解(在局域网访问)

    docker中使用mongodb数据库详解(在局域网访问)

    这篇文章主要给大家介绍了在docker中使用mongodb数据库,在局域网访问的相关资料,文中将步骤介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Docker Engine配置的实现步骤

    Docker Engine配置的实现步骤

    Docker配置文件位于/etc/docker/daemon.json,下面就来介绍了Docker Engine配置方法,涵盖配置文件位置、常用参数,如存储路径、调试模式、网络设置、日志驱动等,感兴趣的可以了解一下
    2025-07-07
  • 基于windows10安装docker及遇到的问题

    基于windows10安装docker及遇到的问题

    这篇文章主要介绍了基于windows10安装docker及遇到的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 如何修改Docker镜像的映射端口号

    如何修改Docker镜像的映射端口号

    这篇文章主要介绍了如何修改Docker镜像的映射端口号问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • docker中使用mysql数据库详解(在局域网访问)

    docker中使用mysql数据库详解(在局域网访问)

    这篇文章主要给大家介绍了在docker中使用mysql数据库,在局域网访问的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • docker registry删除远程仓库镜像实现方式

    docker registry删除远程仓库镜像实现方式

    文章介绍如何清理Docker Registry中堆积的镜像,通过配置删除功能、启动容器、查看镜像信息并执行删除操作,同时提供基于web-ui的管理方案,优化存储空间使用
    2025-09-09
  • 蘑菇街 私有云Docker实例应用

    蘑菇街 私有云Docker实例应用

    这篇文章主要介绍了蘑菇街 私有云Docker实例应用的相关资料,需要的朋友可以参考下
    2016-10-10

最新评论