zoukankan      html  css  js  c++  java
  • 【转载】Docker部署nginx并修改配置文件

    docker 部署个nginx
    docker run 
      --name nginx-health-web-pc 
      -d -p 6800:80 
      -v /usr/docker/nginx/html:/usr/share/nginx/html 
      nginx
    

      

    运行启动不亦乐乎~~~~~这时候忽然前端过来说:“你的nginx里得加一个配置”,顺带还告诉你:“某某某以前就是这样配的",

    此时好胜的你当然不能拒绝,但是真正配置起来还是要费点心思的,一般情况下docker启动时进行配置,只要把配置文件的目录挂载出来就可以,简洁方便,但是nginx却是先加载一个主配置文件nginx.conf,在nginx.conf里再加载conf.d目录下的子配置文件(一般最少一个default.conf文件)。这比单独挂载一个目录麻烦了不少,但只要思路清晰,倒也不难。

    我们先看挂载好的命令:

     启动docker的命令

    docker run 
      --name myNginx 
      -d -p 80:80 
      -v /usr/docker/myNginx/html:/usr/share/nginx/html 
      -v /etc/docker/myNginx/nginx.conf:/etc/nginx/nginx.conf:ro 
      -v /etc/docker/myNginx/conf.d:/etc/nginx/conf.d 
      nginx
    

      


    这里有几个注意事项:

    (1)第一个“-v”,是项目位置,把项目放到挂载到的目录下即可;

    (2)第二个“-v”,是挂载的主配置文件"nginx.conf",注意"nginx.conf"文件内有一行"include /etc/nginx/conf.d/*.conf;",这个include指向了子配置文件的路径,此处注意include后所跟的路径一定不要出错。

    (3)第三个“-v”,把docker内子配置文件的路径也挂载了出来,注意要与(2)中include指向路径一致

    (4)重点强调一下,nginx.conf是挂载了一个文件(docker是不推荐这样用的),conf.d挂载的是一个目录

    我们先启动一下,可以发现是有问题的,因为配置文件还没有。

    配置配置文件

    我们找到常规方法安装的nginx时生成的配置文件(一般以“/etc/nginx”下),对应上面启动命令中的挂载位置,把主配置文件nginx.conf放到对应位置“/etc/docker/myNginx/nginx.conf”,把子配置文件“default.conf”放到“/etc/docker/myNginx/conf.d”目录下

    重新运行启动命令,发现已经好了,至此docker中的文件已经可以随意配置,跟原生安装是一模一样的

    思路:配置时一定要铆定一个思路:挂载出来的文件运行时是要加载到docker进程中去的!这样就不容易混淆。

    ---------------------------------------------------------------分隔线---------------------------------------------------------------------

    贴出我的配置文件:

    nginx.conf

     1 user  root;
     2 worker_processes  1;
     3  
     4 error_log  /var/log/nginx/error.log warn;
     5 pid        /var/run/nginx.pid;
     6  
     7  
     8 events {
     9     worker_connections  1024;
    10 }
    11  
    12  
    13 http {
    14     include       /etc/nginx/mime.types;
    15     default_type  application/octet-stream;
    16  
    17     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    18                       '$status $body_bytes_sent "$http_referer" '
    19                       '"$http_user_agent" "$http_x_forwarded_for"';
    20  
    21     access_log  /var/log/nginx/access.log  main;
    22  
    23     sendfile        on;
    24     #tcp_nopush     on;
    25  
    26     keepalive_timeout  65;
    27  
    28     autoindex  on;
    29     
    30     #gzip  on;
    31  
    32     include /etc/nginx/conf.d/*.conf;
    33  
    34     client_max_body_size 100M;
    35  
    36     client_header_buffer_size    128k;
    37     large_client_header_buffers  4  128k;
    38 }

    default.conf

    server {
        listen       80;
        server_name  localhost;
     
        #charset koi8-r;
        #access_log  /var/log/nginx/log/host.access.log  main;
     
        location / {
            root   /usr/nginx/dacheng-wechat-web;
           # root   /usr/nginx/html;
            index  index.html index.htm;
            autoindex  on;
    	try_files $uri /index/index/page.html;
            #try_files $uri /index/map/page.html;
        }
     
        #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;
        }
     
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
     
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
     
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }
    

      原文地址:https://blog.csdn.net/wangfei0904306/article/details/77623400

  • 相关阅读:
    鸟哥的Linux私房菜基础学习篇(第三版)——阅读笔记(二)
    鸟哥的Linux私房菜基础学习篇(第三版)——阅读笔记(一)
    Git的使用流程及常用命令汇总
    Protocol buffers编写风格指南
    Effective Go中文版(更新中)
    go package 学习笔记 —— strconv(string与其他基本数据类型(int, float, bool)的转换)
    在iis上部署 AngularJS
    asp.net Core 2.0部署到iis上
    ABP 运行前端代码
    Asp.NET Core2.0 EF ABP Postgresql 数据迁移
  • 原文地址:https://www.cnblogs.com/hailun1987/p/9672125.html
Copyright © 2011-2022 走看看