在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个日志:

  1. access.log,记录每个HTTP请求信息
  2. 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文件:

12345678
server {        listen 80;

        root /www;        index index.html index.htm;

        server_name localhost;}

命令如下:

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-enabledserver文件的本地路径,映射到docker容器的nginx配置路径

设置反向代理到Nodejs Web App

需要先能将Nodejs的容器跑起来,然后再考虑怎样通过Nginx的反向代理。

可参见在Docker中运行Node.js的Web应用

假设我有个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文件做点改动:

123456789101112
server {        listen 80;

        #root /www;        #index index.html index.htm;

        server_name localhost;

        location / {        	proxy_pass  http://localhost:3000;        }}

之后,用下面的命令将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服务器

时间: 2024-11-03 21:34:50

在Docker下部署Nginx的相关文章

docker环境部署nginx、tomcat、redis

centos7 部署docker 1.获取阿里docker yum源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce-staging.repo yum makecache yum repolist 2.移除旧版docker yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker

debian7下部署nginx服务器

笔者是在vmware中的Debian7下部署nginx服务器,采用离线部署方式.过程如下: 1.准备好需要的离线安装包 nginx-1.6.2.tar.gz,pcre-8.34.tar.gz,openssl(在线安装),zlib-1.2.8.tar.gz (这些包文章末尾给出了下载链接) 2.安装pcre tar zxvf pcre-8.34.tar.gz cd pcre-8.34 ./configure make sudo make install 3.安装openssl 采用在线安装方式,s

vue部署docker下的nginx刷新404问题及解决方案

环境描述 本次环境是通过jenkins编译npm run build 或者UMI_ENV=dev umi build 生成dist目录通过Dockerfile build一个新镜像上传私服通过swarm集群service运行镜像,使用与swarm一个net下的nginx代理访问的. [[email protected] DEV-sk_platform_brand_common]# cat DockerfileFROM basic-registry.xxxx.com/skong/nginx###继

docker stack 部署nginx

=============================================== 2018/7/29_第1次修改                       ccb_warlock =============================================== nginx作为市场占有率较高的http和反向代理服务,各种需要用到http和网页服务的项目经常需要用nginx做反代,故通过docker部署nginx也是最近的工作之一,故整理完部署后进行记录.  一.前提条

Centos7下部署Nginx

一.续Centos7下部署Node,Nginx安装部署: Nginx选择安装的是编译版(附下载地址:https://nginx.org/download/),根据自己的系统环境选择. 1.进入保存下载文件的路径,cd进入文件保存路径,命令: cd /usr/local/src 2.下载文件,我这选择最新版本nginx-1.13.11.命令: wget https://nginx.org/download/nginx-1.13.11.tar.gz 3.解压到特定文件夹下,进行解压,执行命令: ta

centos7下部署nginx+supervisor+netcore2.1服务器环境

由于工作需要,自己部署了一台centos7服务器,用于部署netcore2.1的服务器环境,涉及到的相关内容主要有以下几点 netcore2.1版本的部署调试 supervisor守护进程的部署 nginx反向代理部署以及简单的负载均衡示例 其他用到的相关软件有vs2017,xshell,xftp 内容比较基础,适合刚刚接触的新手,高手就忽略吧 一.netcore2.1版本部署 首先需要一台服务器,当然用虚拟机也可以,我这里是自己买了一台阿里云服务器,最低配置的,价格便宜,用xshell远程链接

Docker Compose 部署Nginx服务实现负载均衡

Compose简介: Compose是Docker容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,使用Docker Compose,不再需要使用shell脚本来启动容器.Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用.docker-compose默认的模板文件是 docker-compose.yml,其中定义的每个服务都必须通过image 指令指定镜

windows Server2008 下部署nginx

前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关nginx下的搭建与配置. 注意本次实验使用的windows server 2003 64bit,而且还是在虚拟机中.IP地址为192.168.1.221 首先去官网下载 nginx最新的的Windows版本,如下: http://nginx.org/en/download.html 下载到软件包后,解压 nginx-1.7.6.zip包到你喜欢的根

Docker教程系列六:Docker上部署Nginx

1下载Nginx镜像 docker pull nginx 2创建Nginx容器 docker run -di --name=nginx -p 80:80  nginx/bin/bash 3测试Nginx 浏览器地址栏输入: Linux系统ip 4配置反向代理 官方的nginx镜像,nginx配置文件nginx.conf 在/etc/nginx/目录下. 在容器内编辑配置文件不方便,我们可以先将配置文件从容器内拷贝到宿主机,编辑修改后再拷贝回去. (1)从容器拷贝配置文件到宿主机 docker c