zoukankan      html  css  js  c++  java
  • 利用Docker Hub上的Nginx部署Web应用

      Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地

    docker pull nginx

    在/opt下新建文件夹API,将需要发布的Web应用(我的应用文件夹名称是 ElecManageSystem)放到API下,创建并编辑nginx.conf配置文件,用于替换nginx的默认配置文件

    nginx.conf的内容如下(根据自己的情况自行更改):

    worker_processes  auto;
    #pid         /usr/local/nginx/logs/nginx.pid;
    #error_log   /usr/local/nginx/logs/error.log crit;
    worker_rlimit_nofile 1000000;
    
    events {
        worker_connections  65536;
        multi_accept on;
        use epoll;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
        tcp_nopush     on;
        tcp_nodelay on;
        server_tokens off;
    
        keepalive_timeout  10;
        client_header_timeout 10;
        client_body_timeout 10;
        reset_timedout_connection on;
        send_timeout 10;
    
        limit_conn_zone $binary_remote_addr zone=addr:5m;
        limit_conn addr 100;
    
        gzip  on;
        gzip_disable "msie6"
        gzip_static on;
        gzip_proxied any;
        gzip_min_length 1000;
        gzip_comp_level 4;
        gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
        open_file_cache max=100000 inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses 2;
        open_file_cache_errors on;
    
        # include /etc/nginx/conf.d/*.conf;
        # include /etc/nginx/sites-enabled/*;
    
        server {
            listen       80;
            # 接口服务的IP地址
            server_name  xxx.xx.xx.xx;
            charset utf-8;
            access_log off;
            # ElecManageSystem-应用文件夹名称 app-index.html页面所在文件夹
            root   /usr/share/nginx/html/ElecManageSystem/app;
            location / {
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
        }
    }

    然后创建并编辑Dockerfile

    cd /opt
    nano Dockerfile

    Dockerfile的内容如下:

    FROM nginx
    MAINTAINER king
    
    # 将API下的应用文件夹复制到到容器的 /usr/share/nginx/html 路径下,API文件夹不会过去。
    ADD API /usr/share/nginx/html
    # 用编辑过的nginx.conf替换默认的配置文件
    COPY nginx.conf /etc/nginx/nginx.conf

    在/opt下打开终端,或者打开终端后进入到/opt下(cd /opt),在这里根据Dockerfile创建新的镜像。nginx-ems是新镜像的名称,可自行更改。

    docker build -t nginx-ems .

    以刚创建的新镜像nginx-ems为系统模板运行容器

    docker run -i -p 1314:80 -t --name ems nginx-ems

    -i : 可交互,这里只能监测访问记录;

    -p 1314:80 : 将容器的80端口映射到宿主机的1314端口上,即通过宿主机的1314端口即可访问容器的80端口;

    --name ems : 给容器命名为ems,可自行更改;

    nginx-ems : 运行容器的系统模板。

    如有问题还可参考: https://hub.docker.com/_/nginx/

    如有需要替换下本地Host: http://laod.cn/hosts/2016-google-hosts.html

  • 相关阅读:
    prototype.js超强的javascript类库
    MySQL Server Architecture
    Know more about RBA redo block address
    MySQL无处不在
    利用Oracle Enterprise Manager Cloud Control 12c创建DataGuard Standby
    LAMP Stack
    9i中DG remote archive可能导致Primary Database挂起
    Oracle数据库升级与补丁
    Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
    Oracle Ksplice如何工作?How does Ksplice work?
  • 原文地址:https://www.cnblogs.com/xcloudbiz/p/5261689.html
Copyright © 2011-2022 走看看