Docker通过nginx服务器建立一个简单的网站

需要提前准备的环境:

  1. 服务器云主机装好centos/debian系统(如果没有本地主机也可以,只不过网页只能在本地访问)
  2. 提前装好docker

现在开始吧

一 下载nginx镜像

使用docker pull nginx命令下载nginx镜像
下载好以后,可使用docker images查看本地镜像

二 使用镜像制作nginx容器

以下是完整命令:

docker run -itd -p 80:80 -v /var/nginxchannel:/var/nginxchannel nginx

-i : 标准输入输出
-t:启用伪终端,也就是说你可以进入容器中的bash输入命令
-d:容器可以后台运行,也就是说容易中最后一个进程被kill之后,容器不会关闭
-p:将宿主机的80端口映射到容器的80端口,注意这个映射的顺序(事实上,也可以将宿主机的80端口映射到容器的任意端口,然后使得网站侦听这个任意端口即可,还会避免冲突,这个后面再说)
-v:将宿主机的/var/nginxchannel目录挂在到容器的/var/nginxchannel目录,注意这个映射顺序,相当于把宿主机的这个目录当做U盘插在了容器上

三 开始建网站

1 建站原理

nginx服务器对于域名和端口的侦听,全都在/etc/nginx/nginx.conf这个文本文件中。
使用cat /etc/nginx/nginx.conf查看文件中内容,重点放在这一段:

http
{
......
}

这个大括号里面要存放下面这一块内容,即是一个个网站:

server
    {
      listen        80 default;
      server_name    (这里写你的域名或者ip可以写多个,用空格隔开);
      access_log     logs/default.access.log combined;//这个是你的网站访问日志存放文件
      location / {      
          index index.html;//这个意思是,浏览器输入域名后,网页会显示网站目录下的index文件,如果没有此文件则会显示index.html文件,以此类推
          root  (这里写网站对应的目录);
      }

知道这些后,我们只需要做两件事:

  1. 建好网站目录并写入index.html文件
  2. 修改nginx.conf

2 新建网站目录

cd 你想要的目录
mkdir www
cd www
touch index.html

3 修改nginx.conf

向index.html中写入内容,以及修改配置文件,可使用echo 内容 >> 文件,但使用起来不方便,只能一行一行写
另外一种办法是使用vim修改文件内容,但是这个镜像并没有安装vim,需要手动安装

3 安装vim

使用以下命令
apt-get install vim
你可能会发现报错了,没有找到vim安装包
使用apt-get update更新软件源列表即可
然后,apt-get install -y vim安装即可(-y是为了安装过程中免确认)


安装好后
这里只讲更改配置文件

(养成好习惯,修改之前先备份,cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf)

进入配置文件
按一下i,可以看到左下角显示白色的insert,然后就可以编辑了
点一下http块结尾的},光标移动到}之前,将复制好的server块粘贴进来,这里注意终端中的粘贴不是ctrl v,而是shift insert,相应的复制是ctrl insert,修改好以后,按一下ESC,左下角insert消失,按住shift按分号,也就是冒号,输入wq,回车,就保存并退出了。

接下来可以测试配置文件由于语法错误,nginx -t,如果输出一行ok一行success就没问题了。

改完之后需要重启一下nginx容器:

exit
docker restart nginx(这里写你的容器名称或者ID前三位)

浏览器输入你的域名试试吧。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在 Docker 中实现 Nginx 服务器类型的简单伪装,可以使用 Nginx 的 [proxy_pass](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass) 指令。 以下是一个简单的示例 Dockerfile,用于将 Nginx 服务器伪装为 Apache 服务器: ``` FROM nginx # 将 /etc/nginx/conf.d/default.conf 备份为 /etc/nginx/conf.d/default.conf.bak RUN mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak # 创建一个新的 /etc/nginx/conf.d/default.conf 文件 RUN echo "server {" > /etc/nginx/conf.d/default.conf RUN echo " listen 80;" >> /etc/nginx/conf.d/default.conf RUN echo " server_name localhost;" >> /etc/nginx/conf.d/default.conf RUN echo " location / {" >> /etc/nginx/conf.d/default.conf RUN echo " proxy_pass http://apache:80;" >> /etc/nginx/conf.d/default.conf RUN echo " }" >> /etc/nginx/conf.d/default.conf RUN echo "}" >> /etc/nginx/conf.d/default.conf ``` 在这个 Dockerfile 中,我们首先备份了默认的 `/etc/nginx/conf.d/default.conf` 文件,然后创建了一个新的 `/etc/nginx/conf.d/default.conf` 文件,其中 `proxy_pass` 指令将所有请求转发到 `http://apache:80`,这里的 `apache` 是另一个容器的名称,该容器运行了 Apache 服务器。 接下来,我们可以使用 `docker-compose` 来启动这两个容器,并将它们连接到同一个 Docker 网络中: ``` version: '3' services: apache: image: httpd ports: - "8080:80" nginx: build: . ports: - "80:80" depends_on: - apache ``` 在这个 `docker-compose.yml` 文件中,我们定义了两个服务:`apache` 和 `nginx`。`apache` 服务使用 `httpd` 镜像,并将其端口映射到主机的 `8080` 端口。`nginx` 服务构建自上面的 Dockerfile,并将其端口映射到主机的 `80` 端口。`nginx` 服务还依赖于 `apache` 服务,这样它就可以使用 `http://apache:80` 这个地址来访问 `apache` 服务了。 现在,我们可以使用 `docker-compose up` 命令来启动这两个容器,并在浏览器中访问 `http://localhost`,这时就会看到 Nginx 服务器伪装成了 Apache 服务器

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值