在Docker下部署Nginx
在Docker下部署Nginx
在Docker下部署Nginx,包括:
- 部署一个最简单的Nginx,可以通过80端口访问默认的网站
- 设置记录访问和错误日志的路径
- 设置静态网站的路径
- 通过
proxy_pass将HTTP请求反向代理到nodejs Web App - 设置HTTPS
如果你还没有安装Docker环境,可参考在Docker中运行Node.js的Web应用。
最简单的命令,让Nginx跑起来
命令如下:
1 |
$ sudo docker run -it -p 80:80 dockerfile/nginx |
如果是第一次,下载nginx镜像需要点时间。
然后,可以通过浏览器根据地址访问到一个默认的网页,说明Nginx成功跑起来了。
设置记录访问和错误日志
Nginx有2个日志:
- access.log,记录每个HTTP请求信息
- error.log,记录Nginx运行中的错误,用于排错
运行如下命令:
1 |
$ sudo docker run -it -p 80:80 -v `pwd`/logs:/var/log/nginx dockerfile/nginx |
这个命令会在当前目录下创建logs目录,存放access.log和error.log。
设置静态网站路径
需要创建目录:
- config,目录下放一个文件,名为
server,Nginx静态网站配置文件 - www,目录下放html文件,比如
index.html
server文件:
1 |
server {
|
命令如下:
1 |
sudo docker run -it -p 80:80 -v `pwd`/www:/www -v `pwd`/config:/etc/nginx/sites-enabled -v `pwd`/logs:/var/log/nginx dockerfile/nginx |
解释一下:
-vpwd/www:/www,将当前路径下的www目录设置为/www,和server配置的路径对应-vpwd/config:/etc/nginx/sites-enabled,server文件的本地路径,映射到docker容器的nginx配置路径
设置反向代理到Nodejs Web App
需要先能将Nodejs的容器跑起来,然后再考虑怎样通过Nginx的反向代理。
假设我有个express.js项目,在当前目录下的webapp目录中,使用docker命令类似这样:
1 |
sudo docker run -d -p 3000:3000 --name ProtoWebApp -v `pwd`/webapp:/webapp -w /webapp node npm start |
然后,将前面例子中config目录下的server文件做点改动:
1 |
server {
|
之后,用下面的命令将nginx跑起来:
1 |
sudo docker run -it -p 80:80 --link ProtoWebApp:localhost -v `pwd`/config:/etc/nginx/sites-enabled -v `pwd`/logs:/var/log/nginx dockerfile/nginx |
设置HTTPS
只需在运行nginx容器的时候设置SSL的路径:-v <certs-dir>:/etc/nginx/certs。
当然,nginx首先要设置,参见配置HTTPS服务器
在Docker下部署Nginx的更多相关文章
- 庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群
庐山真面目之十微服务架构 Net Core 基于 Docker 容器部署 Nginx 集群 一.简介 前面的两篇文章,我们已经介绍了Net Core项目基于Docker容器部署在Linux服 ...
- 设想 Docker 下部署 KVM
设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...
- debian7下部署nginx服务器
笔者是在vmware中的Debian7下部署nginx服务器,采用离线部署方式.过程如下: 1.准备好需要的离线安装包 nginx-1.6.2.tar.gz,pcre-8.34.tar.gz,open ...
- Docker Compose部署 nginx代理Tomcat集群
一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...
- 阿里云服务器安装Docker并部署nginx、jdk、redis、mysql
阿里云服务器安装Docker并部署nginx.jdk.redis.mysql 一.安装Docker 1.安装Docker的依赖库 yum install -y yum-utils device-map ...
- docker stack 部署nginx
=============================================== 2018/7/29_第1次修改 ccb_warlock == ...
- docker - compose 部署 Nginx
主要介绍 docker 中 Nginx 的部署及项目目录挂载券的方法.docker 中部署一个服务,有三种方法,分别是 docker run.Dockerfile.docker-compose . 下 ...
- 利用DockerHub在Centos7.7环境下部署Nginx反向代理Gunicorn+Flask独立架构
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_165 上一篇文章:Docker在手,天下我有,在Win10系统下利用Docker部署Gunicorn+Flask打造独立镜像,是在 ...
- Linux运维之docker虚拟化部署nginx
一.Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...
随机推荐
- Hibernate学习之表一对多,多对一关系
代码: person类: public class Person { private long id; private String name; private int age; private Da ...
- SDK更新太慢
同时,更新ADT和SDK Manager 在SDK Manager下Tools->Options打开了SDK Manager的Settings,选中“Force https://… source ...
- 【转】Android仿QQ截图应用测试
使用过QQ的同学应该都用过QQ截图,Ctrl+Alt+A进入截图操作,通过拉伸,移动高亮区域的框体可以快速截取我们需要的图片.在android应用中,我们也经常需要截图操作,以下实现了一个类似QQ截图 ...
- Coordinate System
Coordinate System Introduction of Different Coordinate Systems Cartesian Coordinate System UI Coordi ...
- Day05 - Python 常用模块
1. 模块简介 模块就是一个保存了 Python 代码的文件.模块能定义函数,类和变量.模块里也能包含可执行的代码. 模块也是 Python 对象,具有随机的名字属性用来绑定或引用. 下例是个简单的模 ...
- session的固化(搁置)
Session在其生命周期中,可能会在运行时状态和持久化状态之间转换. 会话从运行时状态变为持久化状态的过程称为 -- 搁置:在以下情况下,Session会被搁置: 当服务器总之或单个Web应用终止时 ...
- LAMP环境部署总结
linux+apche+mysql+php 此次用到的工具有:/etc/init.d/iptables , selinux, useradd, yum,chkconfig,sshd,visudo,cr ...
- VC++ 获取windows系统的版本类型
vc中获取windows版本信息,一般是调用GetVersionEx 这个API函数来获取的,这个API需要OSVERSIONINFOEX 这个结构体作为参数,OSVERSIONINFOEX 的对应的 ...
- Java基础知识强化之集合框架笔记63:Map集合之HashMap嵌套ArrayList
1. ArrayList集合嵌套HashMap集合并遍历. 需求:假设ArrayList集合的元素是HashMap.有3个.每一个HashMap集合的键和值都是字符串.元素我已经完成,请遍历. 结果: ...
- JavaScript 应用开发 #2:视图与模板
在用 Backbone 开发的 JavaScript 应用里面,除了模型与集合以外,另一个重要的部分就是视图,英文是 View .在视图里面,我们可以去监听在页面上发生的事件,还有与视图相关的模型和集 ...