• docker部署安装Nginx


    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
    
    • 1

    拉取镜像

    docker pull nginx
    
    • 1

    创建文件夹

    mkdir -p /usr/services/docker/nginx/conf.d
    mkdir -p /usr/services/docker/nginx/log
    mkdir -p /usr/services/docker/nginx/html
    
    • 1
    • 2
    • 3

    创建配置文件

    touch nginx.conf
    
    • 1

    启动

    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
    
    • 1

    解释:

    ​ -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;
      
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
    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"; } 
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24

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

    原文链接:https://monkey.blog.xpyvip.top/archives/docker部署安装nginx

  • 相关阅读:
    声明式事务概念
    卡尔曼滤波(2):让算法运转起来
    在Windows11上安装ubuntu版linux系统并实现桌面图形化(WSL)
    【计算机考研】【英语一】必备词组
    防火墙dmz实验
    推荐算法之召回模型:DSSM、YoutubeDNN
    简单入门编写html登录界面
    Leetcode-429.N叉树的层序遍历
    荧光染料标记双活化酯,Cy7 双NHS酯,Cyanine7 diNHS ester分子量及外观解析
    Java核心编程(18)
  • 原文地址:https://blog.csdn.net/baidu_23966735/article/details/126838040