对于开发人员来说,要学习很多的容器、缓存、消息中间件、数据库等 。比如:Tomcat,jboss,websphere,redis,mongoDB,mq,MySQL等 。但是在自己项目中不一定都会用到,为了学习,经常会在自己的电脑上安装虚拟机,然后把这些工具安装到虚拟机上,再抽出时间来学习、研究 。但是由于下载麻烦并且还会涉及版本的问题,以及下载源都是英文的,下载非常的不方便 。现在我们会简单的使用Docker,这些问题就迎刃而解了 。今天我们就通过docker安装Nginx来给大家举个例子吧 。
一、什么是Nginx?Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的是一个高性能的 HTTP 和反向代理 web 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。在高连接并发的情况下,Nginx是Apache服务器不错的替代品 。
二、Nginx的优点 。1.可以高并发连接 。
因为Nginx是基于AIO的线程模型,而Tomcat8以后是默认的NIO的线程模型,Tomcat8之前是默认的BIO的线程模型 。基于AIO线程模型的Nginx消耗的资源更加少,性能更好 。可以支持大量的并发,在实际生产中可以支持2-4万的并发连接数 。
2.成本低廉 。
在并发数较大的项目上经常会使用负载均衡机制,一些银行则会使用F5BIG-IP等硬件负载均衡交换机,需要至少10万以上的人民币 。而在一些项目经费不是特别多的公司,和很多的互联网公司来说更加倾向与使用免费的,Nginx经常用来做负载均衡使用,因为是开源软件,即使商用也是免费的,因此很多的公司使用Nginx负载均衡,解决高并发问题 。
3.Nginx的功能很多 。
除了负载均衡之外,还有反向代理,黑白名单,限流,支持热部署,支持集群化部署 。
三、Docker安装Nginx 。1.使用docker命令查看可用版本 。
docker search nginx
文章插图
docker search nginx
2.拉取最新版的nginx镜像 。
docker pull nginx:latest
文章插图
docker pull nginx:latest
3.查看本地镜像 。
【Docker 安装 Nginx】
docker images
文章插图
docker images
4.运行nginx容器 。
docker run --name nginx2 -p 8080:80 -d nginx
- --name nginx2:容器名称 。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口 。
- -d nginx: 设置容器在在后台一直运行 。
文章插图
确认访问nginx首页成功,nginx安装成功 。
6.安装过程中可能出现的问题 。
1>启动nginx容器报错:WARNING: IPv4 forwarding is disabled. Networking will not work.
文章插图
解决方案:
vi /usr/lib/sysctl.d/00-system.conf添加如下代码:net.ipv4.ip_forward=1重启network服务systemctl restart network
2>当启动nginx服务时,发现命名出现冲突:docker: Error response from daemon: Conflict. The container name "/nginx-test" is already in use by container "33045ccc414f321d0920ae4a5e0e11160603d909855ce5a54eaccc7ee66ec3b6". You have to remove (or rename) that container to be able to reuse that name.
文章插图
命名出现冲突,可以运行一个名字不同的容器,比如我的命名为了nginx2,也可以删除之前的容器 。
3>在浏览器无法访问nginx服务 。
确定网络是否配好,然后ip+端口号(在这里为8080) 。
推荐阅读
- Nignx的安装和使用
- 负载均衡解析与Nginx实战
- CentOS 8中安装和使用OpenVAS
- Mac 上安装 pyenv 使用多版本python开发项目
- Docker 容器编排利器 Docker Compose
- WPS如何启用宏功能,VBA组件安装
- Docker-For-Pentest的渗透测试镜像推荐
- cpvc电力管安装的注意事项
- Windows安装MariaDB-10.5.5数据库
- 万兆电口网卡体验——安装篇