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

拉取镜像

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;

}
  1. 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。

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

Original: https://www.cnblogs.com/aibianchengya/p/16689871.html
Author: 程序猿的代码
Title: docker部署安装Nginx

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577836/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 利用卷积神经网络处理cifar图像分类

    这是一个图像分类的比赛CIFAR( CIFAR-10 – Object Recognition in Images ) 首先我们需要下载数据文件,地址: http://…

    Linux 2023年6月6日
    0120
  • MySQL实现备份(1)

    完全备份和部分备份 冷备份、热备份、温备份 温备份适用于:myisam 热备份适用于:innodb 物理备份和逻辑备份 完全备份:备份所有数据 部分备份:只备份部分数据内容 两者第…

    Linux 2023年6月7日
    0150
  • python接收微信消息报’HTMLParser’ object has no attribute ‘unescape’错误

    我的博客 一直有个想法,想要弄个微信机器人,然而出师不利,刚开始就碰壁了 先上代码,这个是用来接收消息的,是个测试脚本 #!/usr/bin/python coding: utf-…

    Linux 2023年6月6日
    0121
  • 用redis解决多用户同时编辑同一条数据问题

    1,场景再现 场景:总公司可以给分公司下发今年的规划任务(可能只是写了个规划大纲),分公司收到后,进行详细的规划补充,然后提交。 比如规划表: CREATE TABLE sys_p…

    Linux 2023年5月28日
    086
  • Linux目录标签概览

    根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关。由于系统开机时需要特定的开机软件、核心文件、开机所需程序、…

    Linux 2023年6月8日
    086
  • Vue3 框架基础随笔 (一)

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。 Vue可以使用简单的代码实现一个单页面应用。 基本格式 Vue通过模板语法来声明式的将数据渲…

    Linux 2023年6月14日
    083
  • 实验一-密码引擎-商用密码算法实现2-交叉测试(选做)

    任务详情 把自己实现的商用密码算法SM2,SM3,SM4与OpenSSL交叉验证 自己实现的SM3算法的结果与OpenSSL的结果比对是否一致 自己实现的SM4算法加密的,Open…

    Linux 2023年6月8日
    0113
  • su与su -,sudo 的区别

    “sudo” , “su” , “su – ” 区别; 一、sudo是一种权限管理机制,依赖于/…

    Linux 2023年6月13日
    0133
  • VMware服务关闭后一定要重启

    重要的事情说三遍:服务暂时关闭记得重启,服务暂时关闭记得重启,服务暂时关闭记得重启!!! VMware服务由于安装补丁的需要我暂时把服务关闭了,于是我遇到了尴尬的一幕,于是乎发现上…

    Linux 2023年6月7日
    0121
  • CentOS7.6下Oracle19C RAC集群詳細搭建步驟

    CentOS7.6搭建RAC 1.系统环境配置 1.1概述 ​ 搭建两个节点的rac集群,其每个节点均有两个网卡,public网卡和private网卡。两个节点的主机名分别为rac…

    Linux 2023年6月13日
    076
  • 自制弹窗拦截器

    一个十分简单的bat脚本 如果需要拦截更多弹窗,只需要将第6~8行复制一下并粘贴到:3后面,将所有的SGtool改成要拦截的进程名即可,每添加一个进程,就要将标号加一,我相信你们能…

    Linux 2023年6月6日
    0103
  • docker Redis 安裝路徑

    /usr/local/etc posted @2022-01-14 17:35 刘大飞 阅读(20 ) 评论() 编辑 Original: https://www.cnblogs….

    Linux 2023年5月28日
    0114
  • Jenkins

    Jenkins Jenkins jenkins简介 jenkins工作原理 jenkins特点 CI/CD是什么 使用tomcat容器安装jenkins jenkins流水线项目发…

    Linux 2023年6月6日
    0125
  • OSI模型 TCP/IP协议

    系统中每打开一个程序,系统会自动分配一个端口号(0~65535) 端口号:来区分应用程序 网络层:传给哪台主机 加入ip地址(源发出去的地址 目:目的地址)选路 数据链路层:mac…

    Linux 2023年6月6日
    0100
  • VirtualAlloc加载shellcode免杀一点记录

    一个很好的学习网站 推荐一下: https://docs.microsoft.com/zh-cn/windows/win32/api/ 0x01 VirtualAlloc Virt…

    Linux 2023年5月28日
    083
  • Python环境安装

    一、下载地址: Python:Download Python | Python.org PyCharm:Download PyCharm: Python IDE for Profe…

    Linux 2023年6月13日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球