docker nginx部署前端项目

网友投稿 296 2022-10-18

docker nginx部署前端项目

最近一直在搞前后端分类,一直在想前端的html页面应该用什么部署

想来想去,如果用tomcat好像有点浪费资源,作为程序员自然要时时刻刻追求新的东西

一直以来都是在apache tomcat上面运行,今天来尝试一下nginx

至于两个性能和效果如何,大家可以参看​

废话少说

我们来利用docker来部署nginx项目

首先我们假设docker 安装成功,并且也获取了nginx镜像,如果还没有安装可以安装一下

从镜像上面我们可以看到的是nginx和tomcat大小比较区别还是很大的,对于我们这种在阿里云上购买一个小的服务器,运行着开发的人员来说,内存小还想追求高的性能,可以考虑使用nginx

第一步启动nginx :docker run -d -p 80:80 --name nginx2 nginx

上面的解释一下:

docker run -d 表示后台运行

-p 80:80  第一个80是宿主机的端口,第二个是容器的端口

-p(小写)则可以指定要映射的IP和端口,但是在一个指定端口上只可以绑定一个容器。支持的格式有 ​​hostPort:containerPort​​​、​​ip:hostPort:containerPort​​​、 ​​ip::containerPort​​。

--name nginx2 表示容器的名称

最后的一个nginx 表示镜像

我们先把这个容器删了,换一个容器端口

我们映射容器为nginx端口为:3766

这个时候去访问页面是打不开的

其实这个就是说,我们docker在启动nginx容器的时候,需要默认用容器的80端口这样才能进行访问

真的是这样的,我们能不能修改nginx默认的80端口

docker cp nginx2:/etc/nginx/conf.d/default.conf default.conf

docker cp default.conf nginx2:/etc/nginx/conf.d/default.conf

docker restart nginx2

修改了配置文件之后我们要做重新访问页面

发现就可以了

上面我们介绍的是如何启动ngxin和如何修改nginx的默认的的端口

我们可以看到的是我们每次修改nginx的配置文件需要复制出来,修改,然后复制回去

这样来说甚是麻烦

我们可以通过挂载的方式来解决来回cp的问题

我们把前面创建的nginx2的default.conf放到一个文件夹里面

比如:我们把default.conf 存放在/home/nginx/default.conf

然后我们启动:

docker run -d -p 80:3766 -v /home/nginx/default.conf:/etc/nginx/conf.d/default.conf --name nginx2 nginx

再次访问:

此时此刻我们的default.conf配置文是放在容器外部的

server { listen 3766; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 #

如果我们修改上面的 nginx监听的端口,然后重启容器发现无法访问页面了

这个时候说明的是我们的配置文件生效了

我修改成为:3767 容器中这个端口是没有开放的

看来我们的配置文件是有效果的

我们来看这个命令

docker run -d -p 80:3766 -v /home/nginx/default.conf:/etc/nginx/conf.d/default.conf --name nginx2 nginx

-v 创建一个挂载,前端是宿主机的路径 后面的 是容器中的路径

我们发现nginx里面有一个location / 这个是静态文件的路径

我们想,如果我们将我们的静态文件夹存放在宿主机上,然后做一个挂载放在容器里这个路径,那么我们是不是修改宿主机上面的 静态文件,对应的容器的静态文件也会进行修改

这个就是实现了我们前端页面用nginx显示的需求吗

我在home目录下创建一个world

下面我们要启动nginx

docker run -d -p 80:3766 -v /home/nginx/default.conf:/etc/nginx/conf.d/default.conf -v /home/--name nginx2 nginx

上面就是部署的整个过程

希望对你有所帮助

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java数据结构顺序表从零基础到精通进阶
下一篇:docker--容器间通信 Link(单向通信)、bridge(双向通信)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~