Nginx(docker安装)快速入门

文章目录

  • Nginx(docker安装)快速入门
    • 一、nginx简介
      • 1、什么是Nginx
    • 二、Nginx安装
      • 1、搜索nginx镜像
      • 2、拉取nginx镜像
      • 3、创建容器,设置端⼝映射、⽬录映射
    • 三、Nginx静态⽹站部署
      • **1**、静态⽹站的部署
      • **2**、 配置虚拟主机
        • 2.1、**端⼝绑定**
    • 三、Nginx反向代理与负载均衡
      • **1**、反向代理
        • **1.1**、什么是反向代理
        • 1.2、配置反向代理准备⼯作
        • **1.3 配置反向代理**
      • **2**、负载均衡
        • **2.1** **什么是负载均衡**
        • **2.2** 配置负载均衡准备⼯作
        • **2.3** **配置负载均衡**

一、nginx简介

1、什么是Nginx

​ Nginx 是⼀款⾼性能的 http 服务器/反向代理服务器及电⼦邮件(IMAP/POP3)代理服务器。由俄罗斯

的程序设计师伊⼽尔·⻄索夫(Igor Sysoev)所开发,官⽅测试 nginx 能够⽀⽀撑 5 万并发链接,并且

cpu、内存等资源消耗却⾮常低,运⾏⾮常稳定。

Nginx应⽤场景:

1、http 服务器。Nginx 是⼀个 http 服务可以独⽴提供 http 服务。可以做⽹⻚静态服务器。

2、虚拟主机。可以实现在⼀台服务器虚拟出多个⽹站。例如个⼈⽹站使⽤的虚拟主机。

3、反向代理,负载均衡。当⽹站的访问量达到⼀定程度后,单台服务器不能满⾜⽤户的请求时,需要⽤

多台服务器集群可以使⽤ nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器

负载⾼宕机⽽某台服务器闲置的情况。

二、Nginx安装

1、搜索nginx镜像

docker search nginx

2、拉取nginx镜像

docker pull nginx

3、创建容器,设置端⼝映射、⽬录映射

# 在/root⽬录下创建nginx⽬录⽤于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf⽂件,粘贴下⾯内容
vim nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {worker_connections 1024; }
http {include /etc/nginx/mime.types;default_type application/octet-stream;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;keepalive_timeout 65;#gzip on;include /etc/nginx/conf.d/*.conf;
}

~/nginx/conf.d/80.conf

server {listen 80; # 监听的端⼝server_name localhost; # 域名或iplocation / { # 访问路径配置root /usr/share/nginx/html;# 根⽬录index index.html index.htm; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}
}
#docker容器创建挂载
docker run -id --name=c_nginx \
-p 80:80 \
-p 81:81 \
-p 82:82 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/conf.d:/etc/nginx/conf.d \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx

1、-p 80:80:将容器的 80端⼝映射到宿主机的 80 端⼝。

2、-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前⽬录下的

/conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置⽬录

3、-v $PWD/logs:/var/log/nginx:将主机当前⽬录下的 logs ⽬录挂载到容器

的/var/log/nginx⽇志⽬录

三、Nginx静态⽹站部署

1、静态⽹站的部署

将/资料/静态⻚⾯/index⽬录下的所有内容 上传到服务器的/usr/local/nginx/html下即可访问

2、 配置虚拟主机

nginx虚拟主机,也叫“⽹站空间”,就是把⼀台运⾏在互联⽹上的物理服务器划分成多个“虚拟”服务器。虚拟主

机技术极⼤的促进了⽹络技术的应⽤和普及。同时虚拟主机的租⽤服务也成了⽹络时代的⼀种新型经济

形式。

2.1、端⼝绑定

(1)上传静态⽹站:

​ 将/资料/静态⻚⾯/index⽬录上传⾄ /usr/local/nginx/index下

​ 将/资料/静态⻚⾯/regist⽬录上传⾄ /usr/local/nginx/regist下

(2)修改Nginx 的配置⽂件:~/nginx/config.d/port.conf

server {listen 81; # 监听的端⼝server_name localhost; # 域名或iplocation / { # 访问路径配置root /usr/share/nginx/index;# 根⽬录index index.html index.htm; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}}server {listen 82; # 监听的端⼝server_name localhost; # 域名或iplocation / { # 访问路径配置root /usr/share/nginx/regist;# 根⽬录index regist.html; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}}

(3)访问测试:

地址栏输⼊http://你的虚拟机IP/:81 可以看到⾸⻚⾯
地址栏输⼊http://你的虚拟机IP/:82 可以看到注册⻚⾯

三、Nginx反向代理与负载均衡

1、反向代理

1.1、什么是反向代理

反向代理(Reverse Proxy)⽅式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内

部⽹络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器

对外就表现为⼀个反向代理服务器。

⾸先我们先理解正向代理,如下图:

正向代理是针对你的客户端,⽽反向代理是针对服务器的,如下图:

1.2、配置反向代理准备⼯作

在docker中部署tomcat

1、搜索tomcat镜像

docker search tomcat

2、拉取tomcat镜像

docker pull tomcat

3、创建容器,设置端⼝映射、⽬录映射

# 在/root⽬录下创建tomcat⽬录⽤于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat

参数说明:

-p 8080:8080:将容器的8080端⼝映射到主机的8080端⼝

**-v $PWD:/usr/local/tomcat/webapps:**将主机中当前⽬录挂载到容器的webapps

4、 使⽤外部机器访问tomcat

1.3 配置反向代理

~/nginx/config.d/proxy.conf

upstream tomcat-me{server 192.168.220.12:8080;
}server {listen 80; # 监听的端⼝server_name www.me.com; # 域名或iplocation / { # 访问路径配置# root index;# 根⽬录proxy_pass http://tomcat-me;index index.html index.htm; # 默认⾸⻚ }}

重新启动Nginx 然后⽤浏览器测试:http://www.me.com (此域名须配置域名指向)

2、负载均衡

2.1 什么是负载均衡

负载均衡 建⽴在现有⽹络结构之上,它提供了⼀种廉价有效透明的⽅法扩展⽹络设备和服务器的带宽、

增加吞吐量、加强⽹络数据处理能⼒、提⾼⽹络的灵活性和可⽤性。

负载均衡,英⽂名称为Load Balance,其意思就是分摊到多个操作单元上进⾏执⾏,例如Web服务器、

FTP服务器、企业关键应⽤服务器和其它关键任务服务器等,从⽽共同完成⼯作任务。

2.2 配置负载均衡准备⼯作

(1)使⽤docker创建3个tomcat容器,端⼝分别为8080 ,8081,8082 。

docker run -id --name=c_tomcat1 \
-p 8081:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
docker run -id --name=c_tomcat2 \
-p 8082:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
docker run -id --name=c_tomcat3 \
-p 8083:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat

(2)分别启动这三个tomcat服务。

(3)为了能够区分是访问哪个服务器的⽹站,可以在⾸⻚标题加上标记以便区分。

2.3 配置负载均衡

修改 Nginx配置⽂件:lb.conf

 upstream tomcat-huike {server 192.168.220.12:8080;server 192.168.220.12:8081;server 192.168.220.12:8082;}server {listen 80; # 监听的端⼝server_name www.huike.com; # 域名或iplocation / { # 访问路径配置# root index;# 根⽬录proxy_pass http://tomcat-huike;index index.html index.htm; # 默认⾸⻚}error_page 500 502 503 504 /50x.html; # 错误⻚⾯location = /50x.html {root html;}}

部署并访问项目,刷新观察每个⽹⻚的标题,看是否不同。

经过测试,三台服务器出现的概率各为33.3333333%,交替显示。

如果其中⼀台服务器性能⽐较好,想让其承担更多的压⼒,可以设置权重。

⽐如想让NO.1出现次数是其它服务器的2倍,则修改配置如下:

upstream tomcat-travel {server 192.168.177.129:8080;server 192.168.177.129:8081 weight=2;server 192.168.177.129:8082;}

以上则为nginx-docker的快速入门教学,感谢各位阅览!

Nginx(docker安装)快速入门相关推荐

  1. Docker Swarm 快速入门

    Docker Swarm 快速入门 文章目录 Docker Swarm 快速入门 1.1 初始化集群 1.2 加入新节点 1.3 创建 overlay 网络 1.4 部署服务 service 1.5 ...

  2. 【docker】Docker核心技术快速入门及私有仓库搭建

    更多内容请点击 我的博客 查看,欢迎来访. 什么是Docker? 官方文档翻译 Docker 是基于Go语言实现的开源容器项目.利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化. ...

  3. Docker 使用快速入门

    Docker 在隔离的容器中运行进程,本篇总结使用容器流程中的常用命令.下面按照使用容器中的流程:  `创建并启动容器 > 查询容器  > 进入容器  >  退出容器 > 停止 ...

  4. Docker安装与入门级使用

    Docker 文档链接:https://pan.baidu.com/s/1kKkXuW5uOehC3E2iylrwGA 提取码:wy47 建议用谷歌浏览器,自带英文翻译功能 进入docker官方文档: ...

  5. docker安装clickhouse_clickhouse ----入门

    clickhouse作为现在流行的数据分析数据库,非常热门.我也眼馋了好久,想先本地单机安装下,网上搜索了好多.也遇到了好多问题. 我这边讲述下自己安装的过程. 我这边的电脑是mac. 第一步是安装d ...

  6. Windows10下的docker安装与入门 (一)使用docker toolbox安装docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  7. Docker安装与入门

    安装yum工具 $ sudo yum install -y yum-utils$ sudo yum-config-manager \--add-repo \https://download.docke ...

  8. 2.Nginx Docker安装Nginx

    1.拉取镜像,docker pull nginx [root@localhost ~]# docker pull nginx Using default tag: latest Trying to p ...

  9. docker快速入门_Docker标签快速入门

    docker快速入门 by Shubheksha 通过Shubheksha Docker标签快速入门 (A quick introduction to Docker tags) If you've w ...

最新文章

  1. Java谜题:等于,还是不等于?
  2. oracle集群图例
  3. C语言——反弹球游戏(第三阶段
  4. HDU1525 Euclid's Game 【欧几里得博弈】
  5. spoj SUBLEX (Lexicographical Substring Search) RE的欢迎来看看
  6. Java并发(三)——线程池
  7. mysql varchar255 知乎_CHAR与VARCHAR详解
  8. json数组对象转js数组对象
  9. c语言包含数学库函数的头文件为,Cmath——C语言数学函数库
  10. 360,手机助手的功能,既然有如此二面性?
  11. CentOS系统如何修改语言
  12. 计算机c盘用户爆满,Win7系统C盘突然快满了怎么办?C盘空闲空间爆满
  13. flutter doctor --android-licenses
  14. html中如何将背景图片模糊效果,【css】背景图片模糊效果
  15. 部署VDI虚拟桌面带来的改变
  16. Unity UI xlua 热更:还原塞尔达旷野之息 (持续更新:已补充箭头动效)
  17. 笔记(十):redis集群
  18. POJ3014(最小覆盖点;匈牙利算法)
  19. 攻防世界—流量分析1
  20. oracle存储过程调用sql文件,oracle存储过程的sql调用

热门文章

  1. 地平线机器人 法务_法律服务机器人
  2. Axure怎样制作内部框架
  3. 干货:明确数据分析目标的 3 个步骤,很多人还搞不清楚
  4. 计算机系logo设计大赛,计算机应用技术系LOGO大赛措施
  5. 机器学习系列(1)_数据分析之Kaggle泰坦尼克之灾
  6. 文本处理算法_基于 Python 的 11 种经典数据降维算法
  7. 已安装ME,PR队列导出仍无法打开ME
  8. 【Unity】获取当前物体下的所有子物体
  9. 从抖音和支付宝发展历史总结创新方法
  10. Letax 空格、字号、括号、序号