Docker入门教程-Linux环境安装Nginx及入门使用

介绍

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

安装 Nginx

  1. 查看可用的 Nginx 版本
    访问 Nginx 镜像库地址: https://hub.docker.com/_/nginx?tab=tags。

可以通过 Sort by 查看其他版本的 Nginx,默认是最新版本 nginx:latest。

  1. 取最新版的 Nginx 镜像
    这里我们拉取官方的最新版本的镜像:
docker pull nginx:latest
  1. 查看本地镜像
    使用以下命令来查看是否已安装了 nginx:
docker images
  1. 运行容器
    安装完成后,我们可以使用以下命令来运行 nginx 容器:
docker run --name nginx-test -p 81:80 -d nginx

参数说明:
–name nginx-test:容器名称。
-p 81:80: 端口进行映射,将本地 81端口映射到容器内部的 80 端口。
-d nginx: 设置容器在在后台一直运行。

  1. 安装成功
    最后我们可以通过浏览器可以直接访问 81 端口的 nginx 服务:
    Docker入门教程-Linux环境安装Nginx及入门使用_第1张图片

Nginx实现负载均衡

Nginx经过线上各种网络环境验证,能够帮你隔离各种复杂的网络环境,轻松支持10000+的同时在线连接数,同时拥有多种成熟的负载均衡策略,能够方便横向拓展后端服务。下面我们说一说Nginx负载均衡策略,就各种负载均衡策略在实际项目中如何应用,这里只示例默认的负载均衡策略如何使用,其他方式会在后续文章中详细介绍,尽情期待。

Nginx负载均衡策略分类

  1. 基于轮询方式
    轮询是最基本的配置方法,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。

  2. 依据IP(ip_hash)分配

指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

  1. 基于权重(weight)分配

每个upstream下服务会有一个权重(weight)配置,这个权重就是请求派发的概率,权重越大请求派发给服务的机会越大,可以根据服务资源情况分配权重。

  1. 最少连接(least_conn)方式

把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是有些请求占用的时间很长,会导致其所在的后端负载较高,这种情况下最少连接方式分配方式就可以达到更好的负载均衡效果。

Nginx实现负载均衡实际应用

注意:这里还是基于在Docker环境中使用,部署nginx服务的服务器ip为180.8.2.99,需提前部署两个普通的Web服务,我这里在另外一台服务器180.8.2.222上部署了端口分别为8001和8002的springboot服务,效果如下图
Docker入门教程-Linux环境安装Nginx及入门使用_第2张图片
Docker入门教程-Linux环境安装Nginx及入门使用_第3张图片

  1. 在宿主机/var/nginx目录下创建Nginx配置文件,内容如下:
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    upstream upstream_name{
        server 180.8.2.222:8001;
        server 180.8.2.222:8002;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://upstream_name;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}
  1. 运行容器
docker run   --name nginx81   -d -p 81:80   -v /var/nginx/nginx.conf:/etc/nginx/nginx.conf  nginx 
  1. 验证

浏览器访问:http://180.8.2.99:81/test

正常情况会轮流出现如下界面
Docker入门教程-Linux环境安装Nginx及入门使用_第4张图片
Docker入门教程-Linux环境安装Nginx及入门使用_第5张图片

这样,利用部署在Docker中的Nginx服务就实现负载均衡功能啦~

参考

  • https://www.runoob.com/docker/docker-install-nginx.html
  • https://blog.csdn.net/xungen/article/details/90517525

结语

欢迎关注微信公众号『码仔zonE』,专注于分享Java、云计算相关内容,包括SpringBoot、SpringCloud、微服务、Docker、Kubernetes、Python等领域相关技术干货,期待与您相遇!

你可能感兴趣的:(nginx,docker,nginx)