1这里的nginx是使用docker管理的,管理很简单。直接在终端执行
docker pull nginx
执行该命令以后会默认获取nginx最新版本。
pull下来以后为了方便管理可以使用一下命令创建一下几个文件夹:
mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf
该命令是在当前用户的目录下创建nginx文件夹,以及在nginx文件夹里创建 www logs conf 这三个文件夹,如下:
三个目录的作用:
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 :
这里会告诉我们/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 文件即可