Nginx、docker
容器以及docker
下MongoDB
的下载安装Nginx
?Nginx
是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Nginx
是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru
站点开发的,第一个公开版本 0.1.0
发布于 2004
年 10
月 4
日。
Nginx
特点是占有内存少,并发能力强。
事实上 nginx
的并发能力确实在同类型的网页服务器中表现较好,一般来说,如果我们在项目中引入了 Nginx
,我们的项目架构可能是这样:
(此图源于http://www.javaboy.org/2019/0605/nginx-guide.html
)
在这样的架构中 , Nginx
所代表的角色叫做负载均衡服务器或者反向代理服务器,所有请求首先到达 Nginx
上,再由 Nginx
根据提前配置好的转发规则,将客户端发来的请求转发到某一个 Tomcat
上去。
什么是负载均衡?
实际就是通过增加服务器来减缓单个或少量服务器的压力。负载均衡策略有很多,也有很多层,对于大型网站基本是从DNS就开始负载均衡,负载均衡有硬件个软件之分,各自代表分别是F5和Nginx
(目前Nginx
已被F5收购)。
什么是反向代理服务器?
拿VPN来说,当需要访问GW网站时,需要VPN这个服务器来进行搭桥,我们这边是客户端,VPN作为代理我们的服务去访问GW网站;而反向代理正好相反,因为有些大型网站一天的访问量有很多,比如电商类的网站;如果一个服务器被无数个用户访问是会被挤爆的,所以需要创建多个服务器达到负载均衡的效果,此时可以通过Nginx
代理随机访问需要代理的服务器。
#1.首先找到Nginx的下载地址,再下载
wget http://nginx.org/download/nginx-1.17.0.tar.gz
#2.下载完后先安装2依赖
yum -y install pcre-devel
yum -y install openssl openssl-devel
#3.解压Nginx到当前目录
tar -zxvf nginx-1.17.0.tar.gz
#4.编译、安装(一步一步进行)
./configure
make
make install
#5.默认安装目录为
/usr/local/nginx/sbin/nginx
#6.执行
./nginx
#7.然后在浏览器地址栏输入192.168.1.102:8080,显示welcome to nginx!等界面即安装完成。
Nginx
实现Session
共享#1.修改nginx.conf配置文件,先进入nginx目录
vi nginx.conf
#2.添加upstream
upstream jsorn.org{#jsorn.org随意起
server 127.0.0.1:8080 weght=1;
server 127.0.0.1:8081 weght=1;
}
#location下的东西注释掉,添加两行
proxy_pass http://jsorn.org #与上面的一致
proxy_redirect default;
#3.重启nginx即可
./nginx -s reload
根据 wikipedia
中的介绍:
Docker 是一个开放源代码软件项目,让应用程序布署在软件容器下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。
Docker 利用 Linux 核心中的资源分脱机制,例如 cgroups ,以及 Linux 核心名字空间(name space),来创建独立的软件容器(containers)。这可以在单一 Linux 实体下运作,避免启动一个虚拟机造成的额外负担。
Linux 核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括进程树、网络、用户 ID 与挂载文件系统,而核心的 cgroup 提供资源隔离,包括 CPU 、存储器、block I/O 与网络。从 0.9 版本起,Dockers 在使用抽象虚拟是经由 libvirt 的 LXC 与systemd - nspawn 提供界面的基础上,开始包括 libcontainer 库做为以自己的方式开始直接使用由 Linux 核心提供的虚拟化的设施。
依据行业分析公司“451研究”:“Dockers 是有能力打包应用程序及其虚拟容器,可以在任何 Linux 服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。” 。
5.docker
下载、安装
#1.直接下载
yum -y install docker
#2.启动服务
service start docker
#3.检查docker是否安装成功
docker -v
需要注意的一点是,在Centos7
虚拟机中是不支持SELinux
的或者说需要安装插件,但是可以使SELinux
失效,即
vi /etc/sysconfig/docker
#将OPTINS=‘--selinux-enable --log-driver...改为
OPTINS=‘--selinux-enable=false --log-driver...
docker
常用命令
然后以systemctl start dokcer.service启动服务
通过docker ps查看当前运行的容器
通过docker ps -a 查看已创建的容器
通过docker create 名 来创建一个未启动的容器
通过docker create --name=nginx nginx创建以nginx名的容器
通过docker run --name nginx1 -d -p 8080:80 nginx创建一个运行的容器
通过docker run -name ubuntu -it ubuntu /bin/bash创建一个命令行终端,输入exit即可退出
使用docker run创建的容器不需要启动容器就已经启动容器了,而普通的容器启动则是docker start的方式启动,用id或者name都可以启动
通过docker stop +id/name来终止一个容器
通过docker rm +id/name删除单个容器,只能删除停止运行的容器,如果非要删除一个运行的容器,则用docker rm -f来删除
通过docker rm $(docker ps -a -q)来批量删除
MongoDB
的安装与使用#使用docker创建
docker run -d -p 27001:27001 --name mongo --restart=always -e MONGO_INITDB_ROOT_USERNAME=jsorn -e MONGO_INITDB_ROOT_PASSWORD=123 mongo
Robo 3T-1.3
可视化MongoDB
视图客户端百度云下载(提取码:0h0z)
官网下载:
https://robomongo.org/
具体教学可以参考百度搜索
SpringBoot
整合MongoDB
#application.properties文件中配置如下:
spring.data.mongodb.host=192.168.1.103
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=jsorn
spring.data.mongodb.password=123
spring.data.mongodb.port=27017
spring.data.mongodb.database=jsorn
#然后BookDao需要继承MongoRepository接口
public interface BookDao extends MongoRepository {
List findBookByNameContaining(String name);//自定义方法
}
#最后启动项目在postman中进行操作,其他自定义方法可以去http://www.javaboy.org/查看详细过程。
有句话说的好,好记性不如烂笔头;当自己觉得学得差不多的时候可以进行总结一下,并且接收别人的评论与修正!
谢谢观看与指正!