docker安装nginx

本文详述了如何使用Docker安装Nginx,并构建容器以部署Java后台项目和Vue前端项目。首先介绍了Docker服务的设置,然后讲解了Nginx作为反向代理的作用。接着,通过拉取Nginx镜像、创建容器和配置数据卷,展示了Nginx的安装过程。最后,重点讲述了如何重新构建Nginx容器,用于发布Vue项目,包括上传配置文件、解压前端代码并访问项目首页。
摘要由CSDN通过智能技术生成

  • docker服务做成了随宿主机自启
    systemctl enable docker
    systemctl daemon-reload

  • 构建容器的时候,–restart=always
    容器随docker服务的启动而启动

    虚拟机关机重启的话:首先是docker服务随虚拟机启动,容器又随docker服务的启动而启动
    虚拟机启动,容器就自动启动了

构建java坏境的容器,部署java后台项目

  1. 上传文件到/zking/java目录(oa.jar Dockerfile start.sh)
    mkdir -p /zking/java
    rz

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 启动容器
    cd /zking/java
    sh start.sh

第一步:停止oa容器
第二步:删除oa容器
第三步:删除oa的镜像
第四步:构建自己的oa镜像
第五步:启动 jar 包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

nginx是什么(见手绘图)

     Nginx也是一款服务器,我们常用它做如:反向代理、负载均衡、动态与静态资源的分离的工作,
     反向代理:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
     负载均衡:目前大多数的网站都会采用负载均衡手段来针对目前用户的指数级增长来减少对单点服务器的负载压力,比如目前我们拥有3台真实服务器,我们需要根据相应策略决定什么样的用户请求分配到哪个真实服务器,比如按照轮询的方式,用户请求挨个到达代理服务器,此时代理服务器按照第一个请求转发至第一台真实服务器,第二个请求转发到第二个服务器上,依次类推,这样可以防止大量的用户请求全部访问到同一台物理机上,单点物理机的性能始终有限的,当然这可能对服务器数据访问时候造成事务性的失效,在Web方面可能造成Session访问的问题,这不在本文讨论方面内

     Nginx+tomcat是目前主流的java web部署架构
正向代理服务器
在这里插入图片描述
反向代理服务器
在这里插入图片描述
nginx访问流程图
在这里插入图片描述

安装nginx

  1. 搜索nginx镜像
    docker search nginx
    在这里插入图片描述

  2. 拉取镜像
    docker pull nginx
    在这里插入图片描述

  3. 在宿主机中创建挂载目录(见之前直接在虚拟机里面安装nginx后,会生成一些文件)
    mkdir -p /zking/nginx/{conf,conf.d,html,log}
    可以理解为:
    mkdir /zking/nginx/conf
    mkdir /zking/nginx/conf.d
    mkdir /zking/nginx/html
    mkdir /zking/nginx/log
    在这里插入图片描述

    注1:因为在nginx镜像中没有安装vi或vim编辑器(安装又太麻烦了),无法编辑nginx配置文件,
    所以直接通过数据卷挂载上去更加方便

  4. 根据nginx镜像创建nginx容器
    docker run
    –name mynginx01
    -d -p 80:80
    nginx:latest

    等价:docker run --name mynginx01 -d -p 80:80 nginx:latest
    在这里插入图片描述

    注1:(测试nginx的安装与访问,并没有发布任何的java或vue项目,最后此容器要删除的)

  5. 查看本地的容器,可以看到nginx容器已经创建成功了
    docker ps -a
    在这里插入图片描述

  6. 测试nginx是否安装成功
    打开浏览器输入:http://192.168.148.129( http://宿主机ip:80),正常情况下会显示nginx的欢迎页面
    在这里插入图片描述

重新构建nginx容器用于发布vue项目

  1. 上传nginx.conf配置文件到宿主机/zking/nginx/conf目录下
    注1:构建容器前上传配置文件到/zking/nginx/conf目录下,否则构建nginx容器会报错
    nginx.conf讲解:
    1. 所有配置必须以“;”结尾
    2. nginx发布java项目
    nginx+tomcat实现反向代理及均衡
    upstream tomcats{
    #TODO:172.17.0.3是docker容器的IP
    server 172.17.0.3:8080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
    server 172.17.0.4:8080 weight=2;
    }
    location ^~/api/ {
    proxy_pass http://tomcats;
    proxy_redirect default;
    }
    在这里插入图片描述
    在这里插入图片描述

nginx.conf

#工作进程的个数,一般与计算机的cpu核数一致
worker_processes 1;

events {
   
	#单个进程最大连接数(最大连接数=连接数*进程数)
	worker_connections 1024;
}

http {
   
	include mime.types;#文件扩展名与文件类型映射表
	default_type  application/octet-stream;#默认文件类型
	sendfile on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

	keepalive_timeout 65; #长连接超时时间,单位是秒
	gzip on;#启用Gizp压缩

	#服务器的集群
	upstream  tomcats {
     #服务器集群名字
	        #TODO:172.17.0.3是docker容器的IP 
		server    172.17.0.3:8080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。
		server    172.17.0.4:8080  weight=2;
	}  

	#当前的Nginx的配置
	server {
   
		listen       80;#监听80端口,可以改成其他端口
		server_name  localhost;#当前服务的域名,没有域名可随便填写

                # 动态交给tomcat集群处理
		location / {
   
			proxy_pass http://tomcats;
			proxy_redirect default;
		}

		# 静态处理交给nginx
		location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|ico|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|css|js)$ {
   
			root /usr/share/nginx/html/dist;
			index index.html;
		}

		error_page   500 502 503 504  /50x.html;
			location = /50x.html {
   
			root   html;
		}
	}

}

  1. 创建nginx容器 #
    docker run
    –name mynginx02
    -d -p 80:80
    -v /zking/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
    -v /zking/nginx/log:/var/log/nginx
    -v /zking/nginx/html:/usr/share/nginx/html
    nginx:latest

在这里插入图片描述

  1. 上传dist.zip的包到宿主机/zking/nginx/html目录下
    rz
    在这里插入图片描述

  2. 解压dist.zip
    unzip dist.zip
    在这里插入图片描述

  3. 访问vue项目首页
    http://192.168.148.129/index.html

    在这里插入图片描述

    注1:如果容器创建失败,可通过如下命令,查看在docker容器启动日志
    docker logs -f -t --tail 行数 容器名
    docker logs -f -t --tail 100 mynginx02

    注2:进入容器内部(/bin/bash 还是/bin/sh取决于跟镜像是centos还是alpine)
    docker exec -it mynginx02 /bin/sh

java后台代码(oa项目)

第一步:创建一个名为oa的项目
第二步:配置pom.xml
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.zking</groupId>
	<artifactId>oa</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>oa</name>
	<packaging>jar</packaging>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值