侧边栏壁纸
博主头像
Monkey部落博主等级

Monkey部落,分享技术、经验、遇到的问题及解决方法,欢迎大家互相讨论分享。

  • 累计撰写 59 篇文章
  • 累计创建 36 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

docker部署安装Nginx

Monkey部落
2020-07-21 / 0 评论 / 0 点赞 / 455 阅读 / 860 字

docker部署安装Nginx

前言

Nginx是一个高性能的HTTP和反向代理web服务器,同事也提供了IMAP/POP3/SMTP服务。

特点:

  1. 轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
  2. 占用内存少
  3. 并发能力强

应用

动静分离

Nginx可以作为静态web服务器来部署静态资源,包含一些常见的html页面、css文件、js文件、图片等。动静分离是将动态内容例如php、jsp等转发到tomcat等容器服务上,将静态内容例如html、图片就直接访问。

反向代理

反向代理服务器位于用户和目标服务器之间,对于用户而言,反向代理服务器相当于目标服务器,用户只需要访问反向代理服务器,反向代理服务器负责将用户请求转发给目标服务器,保护了真实的目标服务器。

负载均衡

避免单独一个服务器压力过大导致服务崩溃,Nginx需要将不同用户的请求转发给不同的服务器,包装集群里面的每一台服务器都能正常运作。主要有轮询(默认)、权重(weight,加权轮询)、ip_hash等。

安装步骤

查询镜像

docker search nginx

拉取镜像

docker pull nginx

创建文件夹

mkdir -p /usr/services/docker/nginx/conf.d
mkdir -p /usr/services/docker/nginx/log
mkdir -p /usr/services/docker/nginx/html

创建配置文件

touch nginx.conf

启动

docker run --restart unless-stopped --name nginx -p 80:80 -p 8080:8080 -p 8081:8081 -v /usr/services/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -v /usr/services/docker/nginx/conf.d:/etc/nginx/conf.d:ro -v /usr/services/docker/nginx/html:/usr/share/nginx/html:ro -v /usr/services/docker/nginx/log:/var/log/nginx -d nginx

解释:

​ -p 指定多个端口

​ :ro 表示只读

扩展

  1. 使用allow和deny允许或者禁止某个ip访问是,docker部署使用桥接网络只会获取到docker宿主机的ip,所以无法对ip进行过滤,使用host网络模式可以解决该问题。

  2. nginx.conf文件

    # For more information on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 1024;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
    
    }
    
  3. default.conf

    server {
    
       listen 80;
    
       server_name localhost;
    
    #charset koi8-r;
    
    #access_log /var/log/nginx/host.access.log main;
    
    location / {
    
        root /usr/share/nginx/html;
    
        index index.html index.htm;
    
       }
    
    location /api{
    
       proxy_pass http://ip:port/api;
    
          # access_log "logs/test.log"; 
     } 
    }
    

关注微信公众「平哥技术站」, 每日更新,在手机上阅读所有教程,随时随地都能学习。

觉得写的还不错的小伙伴,请作者喝杯咖啡☕ ,支持一下。😊

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

0

评论区