很多开发人员仅仅只会码代码,如果让开发人员部署一些深入点的东西,或者做负载均衡等,很多开发人员估计就懵逼了,作为一个专业的开发还需要懂一些基本的运维知识;虽然说在互联网行业中,中小企业都有一个牛逼的运维工程师,基本上也没有什么开发人员的事情,所以很多开发人员仅仅知道nginx这个事情,但是不会用,下面我来讲解下Nginx 服务的基本知识.

Nginx 基本概念

这里就不详细说了,[请参考]

Docker 安装部署Nginx

第一步先拉取Nginx最新版本镜像

使用docker pull xxx 指令


docker pull nginx:latest

或者


docker pull nginx:指定版本号

第二步 可以先查看下本地镜像

docker images 指令


docker images //结果输出如下 [root@10-10-165-57 logs]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/nginx latest 568c4670fa80 3 weeks ago 109 MB

| 第三步 创建运行容器

这里我直接映射80端口,还没有映射任务文件的情况


docker run -d -p 80:80 --name nginx docker.io/nginx

好了,这时候nginx 服务已经运行起来了,可以通过docker ps查看运行中的容器


[root@10-10-165-57 logs]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 34ae8c48da89 docker.io/nginx "nginx -g 'daemon ..." 25 minutes ago Up 13 minutes 0.0.0.0:80->80/tcp nginx

以上已经运行了一个命名为nginx 的容器,现在可以访问了

假设我的http://117.50.60.123/ 以及解析到我这台linux服务器中,则可以直接访问http://117.50.60.123/ 得到界面如下

好了现在nginx 已经部署完成

Docker Nginx 目前挂载映射

上面部署好Nginx后,还不够,我们还需要做负载均衡以及代理转发等相关配置,这个配置文件我们可以直接进入容器中配置,也可以把容器中的文件挂载映射到宿主机上,以方便进行配置

| 第一步,我们先进入容器中查看下nginx的目录结构


[root@10-10-165-57 logs]# docker exec -it nginx /bin/bash //输入命令后进入容器的状态 root@34ae8c48da89:/#

| 第二步,进入容器的nginx目录中,并且查看目录结构


//进入容器中的/etc/nginx 目录中 root@34ae8c48da89:/etc/nginx# // 查看 /etc/nginx 中的文件结构 root@34ae8c48da89:/etc/nginx# ls -a . .. conf.d mime.types nginx.conf root@34ae8c48da89:/etc/nginx#

| nginx 目录解析


|- conf.d //nginx 配置文件 包含default.conf 的默认配置文件 |- mime.types //nginx代理的请求头文件 |- nginx.conf //nginx 代理的入口配置文件,配置反向代理及负载均衡从这个文件开始

了解了nginx的配置目录结构后,我们nginx的运行过程中有很多的访问日志,这个日志文件记录在哪里呢?我们可以先查看下nginx.conf 配置


//查看配置文件的指令 cat nginx.conf root@34ae8c48da89:/etc/nginx# cat nginx.conf 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; include /etc/nginx/conf.d/*.conf; } root@34ae8c48da89:/etc/nginx#

从上面的配置文件中可以看到nginx 的日志文件在默认在/var/log/nginx的目录中;现在我们以及搞清楚了两个目录文件/etc/nginx 和/var/log/nginx目录结构,那我们需要把这两个目录文件挂载到宿主机下面,方便我们日后的配置及日志的查看工作

| 第三步,推出nginx 容器中


// exit 退出容器的命令 root@34ae8c48da89:/# exit exit [root@10-10-165-57 logs]#

| 第四部,创建宿主机的挂载目录

创建nginx的目录


[root@10-10-165-57 /]# mkdir /home/root/nginx

nginx目录中创建日志文件目录


[root@10-10-165-57 /]# mkdir /home/root/nginx/logs

| 第五步,创建容器挂载


docker run -d -p 80:8080 -v /home/root/nginx:/etc/nginx -v /home/root/nginx/logs:/var/log/nginx --name nginx docker.io/nginx

运行上面的挂载创建容器后会提示不能创建,主要由于之前我们创建了一个nginx的容器,占用了80端口导致,我们需要停止并且删除之前创建的nginx容器

停止和删除如下


docker stop nginx //停止运行的nginx容器 docker rm nginx //删除nginx容器 //再创建新的nginx容器并且挂载到宿主机文件目录中 docker run -d -p 80:8080 -v /home/root/nginx:/etc/nginx -v /home/root/nginx/logs:/var/log/nginx --name nginx docker.io/nginx

好了以上就把容器中的相关配置目录和日志目录挂载到宿主机文件目录中了,挂载好后我们可以进入宿主机目录创建我们自己的反响代理配置了,后面就不再描述,具体的反向代理及负载均衡相关配置详解下回再详细讲解

Linux +Docker +Nginx 部署代理转发初探的更多相关文章

  1. Docker Kubernetes hostPort 代理转发

    Docker Kubernetes  hostPort 代理转发 hostPort: 1. 类似docker -p 映射宿主级端口到容器. 2. 容器所在的主机暴露端口转发到指定容器中. 3. hos ...

  2. nginx反向代理转发后页面上的js css文件无法加载【原创】

    故障现象:nginx做代理转发后,发现页面上的js css文件无法加载,页面样式乱了. 原因:没有配置静态资源 解决js css文件无法加载无法访问的问题 解决办法: 修改配置文件nginx.conf ...

  3. Centos8 Docker+Nginx部署Asp.Net Core Nginx正向代理与反向代理 负载均衡实现无状态更新

    首先了解Nginx 相关介绍(正向代理和反向代理区别) 所谓代理就是一个代表.一个渠道: 此时就涉及到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称 ...

  4. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  5. 【转】Nginx反向代理转发tomcat

    http://blog.csdn.net/mlc1218559742/article/details/53117520 最近刚接触nginx,在网上查阅了相关资料,看到最多的形容nginx的词就是反向 ...

  6. Linux系统——Nginx反向代理与负载均衡

    集群集群是指一组(若干个)相互独立的计算机,利用高速通信网路组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运用各自服务的独立服务器.这些服务器之间可以彼此通信,协同向用户提供 ...

  7. linux篇—Nginx反向代理负载均衡

    一.环境准备 反向代理功能架构 3台web服务器,组建出web服务器集群 web01 10.0.0.7 172.16.1.7 web02 10.0.0.8 172.16.1.8 web03 10.0. ...

  8. Linux下nginx反向代理服务器安装与配置实操

    1.我们只要实现访问nginx服务器能跳转到不同的服务器即可,我本地测试是这样的, 在nginx服务器里面搭建了2个tomcat,2个tomcat端口分别是8080和8081,当我输入我nginx服务 ...

  9. Linux之nginx反向代理+三台web+nfs共享存储实现集群配置

    作业四:nginx反向代理+三台web+nfs共享存储实现集群配置 在各个web服务器上挂载nfs [root@localhost nginx]# mount -t nfs 192.168.152.1 ...

随机推荐

  1. HttpClient怎么获取cookie

    // 旧版 HttpClient httpClient = new DefaultHttpClient(); // execute get/post/put or whatever httpClien ...

  2. mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等

    mysql中的各种jion的记录,以备用时查 1.等值连接和内连接, a.内连接与等值连接效果是相同的,执行效率也相同,只是书写方式不一样,内连接是由SQL 1999规则定的书写方式 比如: sele ...

  3. 关联规则之Aprior算法

    关联规则挖掘在电商.零售.大气物理.生物医学已经有了广泛的应用,本篇文章将介绍一些基本知识和Aprori算法. 啤酒与尿布的故事已经成为了关联规则挖掘的经典案例,还有人专门出了一本书<啤酒与尿布 ...

  4. 103)PHP,递归读取目录内容

    知识点总结: 打开某个目录 依次读取目录内文件 如果某个文件为目录 递归对该目录采用打开,读取,若还是目录,继续判断,读取 递归点: 如果子文件为目录,则递归 出口: 如果目录中不存在子目录,则不需要 ...

  5. Grails Controller - redirect 方法

    官方文档: http://docs.grails.org/latest/ref/Controllers/redirect.html 网页跳转方法1: // 在一个Action中直接跳转到另外一个Act ...

  6. 树形dp(最小支配集)

    http://poj.org/problem?id=3659 #include<iostream> #include<cstring> #include<algorith ...

  7. 最大流/最小割模板(isap) POJ1273

    isap模板核心代码: //d[]为距离标号数组,d[i]表示节点i到汇点的距离 //gap[]为GAP优化数组,gap[i]表示到汇点距离为i的节点个数 int dfs(int k,int flow ...

  8. 爬虫之使用requests爬取某条标签并生成词云

    一.爬虫前准备 1.工具:pychram(python3.7) 2.库:random,requests,fake-useragent,json,re,bs4,matplotlib,worldcloud ...

  9. python掉包侠与深浅拷贝

    今日所得 包 logging模块 hashlib模块 openpyxl模块 深浅拷贝 包 在学习模块的时候我们了解过模块的四种表现形式,其中的一种就是包. 什么是包? 它是一系列模块文件的结合体,表示 ...

  10. springboot项目实现jar包外配置文件管理

    背景 为实现快速搭建和开发,项目以Springboot框架搭建,springboot搭建的项目可以将项目直接打成jar包并运行,无需自己安装配置Tomcat或者其他服务器,是一种方便快捷的部署方式. ...