nginx是解决动态代理问题,负载均衡问题,资源优化,搭建集群,后的访问管理问题的技术。
实现步骤;
1,在linux系统中一般和 docker_compose_mysql_tomcat 一样都是创建在 opt/文件夹下
所以第一步是先在opt文件加下创建mkdir docker_nginx
2 ,进入mkdir docker_nginx 文件夹中创建vi docker-compose.yml文件(nginx也是依赖docker-compose引入的)
- yml文件可直接在桌面创建在拉到相应的文件夹下;(和前篇 docker_compose_mysql_tomcat一样方式)
- 也可以通过在该文件夹下vi docker_compose.yml 进行编辑。
version: '3.1'
services:
nginx:
restart: always
image: daocloud.io/library/nginx:latest
container_name: nginx
ports:
- 80:80
environment:
TZ: Asia/Shanghai
3 当设置好yml文件后执行docker-compose up -d
因为系统中没有nginx这时就会下载:
- 这时执行docker ps就能看到yml文件设置的ngnix端口容器已经启动
4:一般从上图可以看到还有docker_compose_mysql_tomcat中的容器在运行,所以回到docker_compose_mysql_tomcat中执行docker-compose down 停止并关闭所有docker_compose_mysql_tomcat 中的容器,(防止干扰/docker_nginx/)。docker-compose down在那个里面运行就只关闭那个里面的容器,这样就只会还有一个容器(docker ps查看一下),关闭后再回到cd …/docker_nginx/。
启动成功就说明nginx安装成功-----接下来就是配置可以访问一下虚拟机端口192.168.32.136看一下。
5,回到docker_nginx之后进入容器内 docker exec -it 33e bash(注意容器的id根据自己本机自动生成的)
- 进入容器后会发现很多的目录:cd /etc/nginx/ 找到nginx.conf文件;
- nginx.conf 文件内部,就是整个nginx的配置文件。(这里面就包括了代理问题,负载均衡问题,资源优化,搭建集群nginx的主要功能的配置)【根据官方文档的include可知下边的server配置是从conf.d这个文件内部复制到nginx.conf 的】
6,接着上边的步骤完成配置<重要>
说明:介绍一下文件内容不是步骤!!!
nginx的配置文件的介绍十分重要(也可以在官网下载http://nginx.org/en/download.html)
worker_processes 1;
error_log /var/log/nginx/error.log warn;
# 以上统称为全局块,
# worker_processes他的数值越大,Nginx的并发能力就越强
# error_log 代表Nginx的错误日志存放的位置
events {
worker_connections 1024;
}
# events块
# worker_connections他的数值越大,Nignx并发能力越强
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# location块
# root:将接收到的请求根据/usr/share/nginx/html去查找静态资源
# index: 默认去上述的路径中找到index.html或者index.htm
}
# server块
# listen: 代表Nginx监听的端口号
# localhost:代表Nginx接收请求的ip
}
# http块
# include代表引入一个外部的文件 -> /mime.types中放着大量的媒体类型
# include /etc/nginx/conf.d/*.conf; -> 引入了conf.d目录下的以.conf为结尾的配置文件
1》没有配置时cat打开的nginx.conf文件是下图:配置的就是include部分(后边告诉你server文件的位置进去copy就行)
注意;这个文件在虚拟机内部不能修改的
》》根据/etc/nginx/conf.d/.conf (./表示conf.d下的所有conf文件) 找到cd conf 文件下的default.conf;
》》打开文件cat default.conf进入default.conf文件内部把文件内容部分copy下来 【只要复制先保存下来new一个空白notepad++文件。粘贴这一步现在完成不了要接着往下做===把server部分复制到原来的nginx.conf文件的server(include)位置*】
>但是在linux中是不能直接复制修改文件的,所以通过数据卷配置映射文件(记得先退出default.conf(exit)原文件到容器内docker_nginx再vi docker-conpose.yml)
>在yml文件加:
volumes:
- opt/docker-nginx/conf.d:/etc.ndinx/conf.d(include的文件路径)
version: '3.1'
services:
nginx:
restart: always
image: daocloud.io/library/nginx:latest
container_name: nginx
ports:
- 80:80
environment:
TZ: Asia/Shanghai
volumes:
- /opt/docker_nginx/conf.d:/etc/nginx/conf.d
》》然后执行docker-compose down 把原来的干掉
》》重新启动docker-compose up -d
》》这时可以在opt/docker_nginx文件加下看到多一个conf.d文件
》》再进入到conf.d文件夹下建一个default.conf文件(touch default.conf)用来完成数据卷文件conf.d下的dedault.conf映射关系。
》》因为要整段文字的复制不好在linux实现所以引用工具完成server的设置
[接下来就是完成上边未完成的粘贴部分,这个通过工具EditPlus完成(自己下载看怎么使用;我的在四阶段nginx第二个视屏31分钟有介绍)
以后对nginx的所有操作都在EditPlus工具的default.conf文件的server里面完成]
软件注册:name=editpluskey
code=57A93-93680-02288-8F7A5-D70D0
》》》完成绑定就可以吧之前复制下的文件截取server部分粘贴到绑定好的文件内。会自动完成关联
》》返回到上级docker_nginx文件重启项目就可以访问了。(自己的linux地址)
工具中的内容:
2》在上面完成绑定后也可以查看配置好的的*nginx的配置文件内容
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EditPlus使用: