首先我们看下nginx基本组成
基本运行结构如上面图中所示 nginx启动时有个master进程(主进程)来生成(worker
)工作进程 客户端请求各个工作进程(worker进程会进程处理)
接下来看下nginx主要配置文件(nginx里面配置文件可具备编程性)
image.png
image.png
接下来我们学习下http模块下面的子模块server模块(可以用来发布虚拟主机 也就是网站)
首先修改下上节课从docker中拷贝出来的默认nginx配置文件
接下来我们修改配置文件 配置一个简单的静态网站
image.png
以上是一个基本的server模块 也就是一个基本的网站
location节点表示对请求路径做的配置 / 表示匹配所有(支持正则) 还有优先级区别
location节点里面的 root指令 表示的是 请求访问静态资源网站根目录的位置
index 表示的是默认首页面(可以写多个)
接下来我们在上节课myngx目录下的nginx.conf配置文件中加入 server配置节
如下
image.png
保存 退出
由于我们使用的是docker容器 我们需要把相关的配置文件映射到容器里面对应的配置文件
image.png
首先在物理机上(即启动的vmvare上)的myngx文件夹下创建个新的html文件夹
在终端中输入如下
image.png
然后进入html目录
执行echo "<b>index</b>" > index.html
这句表示在index.html中写入内容
以上就是静态文件的内容
有了这些内容后就可以把物理机和容器进行映射
首先我们删除上节课运行的容器
image.png
接下来进行文件夹映射(物理机文件夹和文件映射到容器中文件夹和文件)
docker run --name ngx -d --rm
-p 80:80
-p 8081:8081
-v /home/bhc/myngx/html:/tmp/html
-v /home/bhc/myngx/nginx.conf:/etc/nginx/nginx.conf
nginx:1.17-alpine
这里的第一行启动容器并进行目录映射加入了 --rm 是为了删除容器方便
以后想要删除容器 直接docker stop ngx就可以了
前面说过 --name指定容器名字 -p端口映射 -v目录映射 冒号前面是物理机上目录 冒号后面是容器里面的目录
image.png
执行命令如下
image.png
可以看见容器启动出来了 并且映射了两个端口 80 和8081
现在只有80可以起作用 因为配置文件中只配置了80
下面可以直接访问网站
直接浏览器输入物理机的ip即可访问(因为做映射了)
image.png
可以看见输出了我们在index.html文件中的内容了
同理加上后缀index.html也可以访问
image.png
以上就是简单的静态网站发布
那么如何发布多网站呢
image.png
就是在nginx配置文件中在加入一个server配置
物理机上myngx目录下的nginx.conf文件添加如下
image.png
重启nginx
docker restart ngx(重启容器名)
image.png
接下来在html文件夹下创建abc.html 里面输入<b>abc</b>
用来作为8081端口网站的访问首页面
最后看下运行结果
image.png
image.png
网友评论