在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 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...
随机推荐
- Windows操作系统的历史
30 years ago Windows was first released, see how much it has changed回顾了Windows操作系统的历史. 1985, Windows ...
- mysql2redis
mysql2redis这个项目主要解决mysql数据跟redis数据同步的问题 目前在测试环境研究这方面的应用,以下是git上面的介绍 git入口 git安装入口 Dependencies pl ...
- MFC程序实现给对话框加入�背景图片
1.插入一个Bitmap的资源图片,如果资源名称为:IDC_BITMAP1 2.在CXXXDialog::OnPaint()中实现: void CMyDialogDlg::OnPaint() { if ...
- JAAS LOGIN IN WEBLOGIC SERVER--reference
The Java Authentication and Authorization Service (JAAS) is a standard extension to the security in ...
- mysql 导入excel 或 .csv
第一步 导出excel 去掉列头,设置文本里面格式
- 给自己取了个英文名-Jamy Cai,哈哈~~
给自己取了个英文名:Jamy Cai, 同时开始启用新邮箱:Jamycai@outlook.com ~~
- Java基础知识强化之IO流笔记32:转换流之OutputStreamWriter的使用
1. OutputStreamWriter的使用 OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流 OutputStreamWriter ...
- git操作github
转自http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html 怕找不到~ 本文在我之前的那篇<git/github学习笔记>的 ...
- ios下微信标题修改
很多开发过微信的人估计都遇到过这样的问题,ios下微信页面标题更改不了,而安卓却可以直接用:document.title="你的标题". 下面是解决这个问题的hack: 1.jqu ...
- 在DropDownList里显示多级分类
protected void ddlBind() { DataTable dt = new DataTable(); ddlCategoryId.DataSource = getList(" ...