Docker部署Nginx启动成功,浏览器拒绝访问
阅读原文时间:2022年04月12日阅读:1

今天下午部署完tomcat和mysql之后就接着部署Nginx,本以为Nginx也和之前两个一样简单,但是就因为标题这个问题,花费了我一个小时纠错。

解决完上一篇博客(https://www.cnblogs.com/Cra2iTeT/p/16131946.html)的挂载文件问题之后,立马就启动了服务,兴高采烈到浏览器输入xxxx.xxx.xxxx(我个人的地址),结果

Nginx无情的拒绝了我的访问。他无情但是我得有意呀,这个网站我今天势必要打开。

思路1:

我以为是端口映射出现了问题,毕竟之前tomcat想要访问还得把对应端口永久打开,我就捣鼓了一阵子,可是我部署tomcat的时候就连带着把防火墙给关了呀,所以这条路X了。

思路2:

不是端口映射有问题,那会不会是nginx自己有问题呢?我又使用下面的语句启动了另外一个nginx服务,你猜怎么着?浏览器居然放他过了。

docker run --name test -p:80:80 -d nginx

为什么就不能放我过呢?

思路3:

诶,你这个启动语句有问题啊,版本都没指定,你要是指定了版本我肯定给你过呀。

docker run -id --name=c_nginx -p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v $PWD/conf/conf.d:/etc/nginx/conf.d:ro \
-v $PWD/html:/usr/share/nginx/html:rw \
-v $PWD/logs:/var/log/nginx \
nginx

启动。

你故意找茬是吧?卒。

最后解:

我之所以写这个启动语句也是因为之前遇到无法挂载文件问题的时候查看了别人的博客,他们的博客都是这种形式的启动语句

-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /data/nginx/html:/usr/share/nginx/html:rw \
-v /data/nginx/logs:/var/log/nginx -d nginx

既然别的可能都被排除了,就只可能是这些配置有问题咯。

我又想起来教学视频的启动语句是

docker run -id --name=c_nginx -p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:ro \
-v $PWD/html:/usr/share/nginx/html:rw \
-v $PWD/logs:/var/log/nginx \
nginx:1.21.6

这样的,把多的这句话去了果然就好了。

当我遇到这个问题的时候,我的浏览器至少打开过三四十个新窗口,但是都没有一个能够解决我问题的。虽然一两个小时的时间被耗在了这样简单的问题上,但是也不是没有收获的。如果我按照视频演示的那样,安装和老师相同的版本,我就不会遇到挂载文件问题,也就不会有今天这个问题,那我之后再遇到相同情形的时候照样得花不少时间解决,我现在就发现了问题并且解决了问题,写下了解决的办法和思考过程,嗯…怎么不算收获呢?