mac或者linux通过docker管理nginx部署静态文件

1这里的nginx是使用docker管理的,管理很简单。直接在终端执行

docker pull nginx

执行该命令以后会默认获取nginx最新版本。

pull下来以后为了方便管理可以使用一下命令创建一下几个文件夹:

mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

该命令是在当前用户的目录下创建nginx文件夹,以及在nginx文件夹里创建 www logs conf 这三个文件夹,如下:

image.png

三个目录的作用:

www:用来存放静态文件

logs:用来存放日志文件

conf:用来存放配置文件

这里创建这几个目录是为了通过docker的目录映射(-v)来更方便的管理nginx

docker执行以上的pull操作以后运行的目录如下:

docker run -d -p 80:80 -v /root/nginx/conf/nginx.conf:/etc/nginx/conf.d/nginx.conf -v /root/nginx/logs:/var/log/nginx -v /root/nginx/www:/usr/share/nginx/html --name my_nginx nginx

-d:后台启动

-p 80:80 端口映射

-v 目录映射,格式:宿主机目录:容器内目录,这里nginx.conf需要指定到该文件,而不能像后面的www那å样映射所在文件夹

--name my_nginx:指定run起来的container的名字,不指定的话docker会随机创建

这里需要注意的就是

-v /root/nginx/www:/usr/share/nginx/html

这里必须要把静态文件所在的目录映射到

/usr/share/nginx/html

文件夹下面。

这里如果是映射到别的目录,会提示该文件找不到。此时可以查看logs文件夹下的error.log :

image.png

这里会告诉我们/usr/share/nginx/html/下的test.html(页面访问的文件名),说明nginx默认的访问路径是 /usr/share/nginx/html,所以需要把www目录映射到此目录。

至此,只需要把静态文件放到 ~/nginx/www 文件夹下,即可用过 ip/filename的方式访问到文件。例如:

我www/下面有个test.html 则可以通过 http://localhost/test.html访问到。

如果www/demo/index.html 则通过 http://localhost/demo/index.html访问到

这里需要注意一点的就是:

通过以上目录映射的方式启动nginx以后 直接输入IP会提示 403.因为nginx默认会显示index.html,而 ~/nginx/www/文件夹下并没有该文件,自己在该目录下新建一个 index.html 文件即可

推荐阅读更多精彩内容