Dokcer搭建各种服务|第三章 安装nginx

前言

这个系列是对我学习docker的一个总结,先从各种服务的搭建开始,直接带大家实战入门。其实docker本身是运维技能,后端同学只需要了解即可。我这个系列也不会对docker太过深入,点到为止。
这次以静态资源服务器nginx开始。

什么是nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
很多同学可能知道nginx反向代理实现负载均衡,但是随着分布式发展,负载均衡已经遍布到分布式到每个组件了,nginx更多是作为静态资源服务器,这次我们用来部署一个打包好到vue。

拉取镜像

首先老套路,和上一章一样,打开dockerhub,搜索nginx。
在这里插入图片描述
我们就直接拉取最新到镜像,来不及解释了

docker pull nginx

创建容器

在这里插入图片描述
官网给出了很多命令,那么我们到底需要用多复杂多命令呢。
在这之前我们先了解一个概念:挂载

挂载

可以简单理解为同步,本质是将容器里位置指向了宿主的位置,然后只需要修改宿主,就可以直接修改到容器,通常用来挂载一些配置文件,这样就不需要进入容器,然后在容器操作那么麻烦了。
在这里我们需要挂载什么呢,主要也就是html和conf。
html是来存储vue打包好到资源,这样以后更新资源只需要传到宿主服务器相应位置即可;
conf是来存储最常用到配置文件,有人就会疑惑了,那上一章到mysql为什么没有挂载,因为mysql的大部分配置可以直接sql修改实现,修改端口的话就-p 修改映射,其余配置默认即可。这一章,我们需要开启nginx的gzip(gzip主要就是压缩资源)配置,来加速vue的首页加载。

最终命令

挂载之前要保证宿主服务器有这些目录

mkdir /soft/nginx/html
mkdir /soft/nginx/conf

最终如下:

docker run --name mynginx -d -p 8001:80 -v /soft/nginx/html:/usr/share/nginx/html -v /soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro nginx

解释一下比上一章多的命令
-v 位置1:位置2,意思是将宿主位置1和容器位置2挂载
后面的:ro 意思是readonly,只能在宿主位置1改,容器位置2只读。
有人就要问来那么这么多的命令有没有完整所有的教程,docker官网请。但是直接上来蒙头看你其实什么都记不住,结合实际情景遇啥学啥即可。
nginx的默认端口是80,这里插一个小知识,其实80是http默认端口,你所访问的所有网站http后面都是有:80,不过被省略了。然后请问https默认端口是啥呢?
最终效果就是将宿主服务器的有8001端口暴露在外,外网访问端口不是80注意。

增加gzip配置

这边就直接把所有配置都发出来,其实原版配置可以在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 {
    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;
	gzip on;
	gzip_min_length 1k;
	gzip_buffers 16 8k;
	gzip_http_version 1.0;
	gzip_comp_level 7;
	gzip_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/javascript text/x-component;
	gzip_vary on;
	gzip_disable "MSIE [1-6]";

    include /etc/nginx/conf.d/*.conf;
}

关键点在:

	#开启gzip
	gzip on;
	#最小压缩
	gzip_min_length 1k;
	#gzip缓存
	gzip_buffers 16 8k;
	#http版本
	gzip_http_version 1.0;
	#压缩等级,1-9,越大压缩越厉害,消耗服务器资源越大
	gzip_comp_level 7;
	#需要压缩的类型
	gzip_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/javascript text/x-component;
	#后面不记得了自己百度吧
	gzip_vary on;
	gzip_disable "MSIE [1-6]";

然后我们将打包好的vue放到html下
在这里插入图片描述

将配置文件放到conf下
在这里插入图片描述

docker restart mynginx

刷新,即可看到改变,并且首页加载速度提升2倍以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值