docker pull nginx
mkdir -p /usr/local/nginx/conf
mkdir -p /usr/local/nginx/log
mkdir -p /usr/local/nginx/html
docker run --name nginx -p 80:80 -d nginx
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
docker stop nginx
docker rm nginx
docker run \
-p 80:80 \
--name nginx \
-v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx/log:/var/log/nginx \
-v /usr/local/nginx/html:/usr/share/nginx/html \
-d nginx
docker ps
可以看到已经创建成功.
# nginx配置文件存放的地方
cd /usr/local/nginx/conf/
# 查看nginx.conf
vi nginx.conf
可以看见,只要是/ect/nginx/conf.d文件夹下的所有后缀为.conf的都会加载进去,因为我们创建容器时将/ect/nginx/conf.d挂载在本机的/usr/local/nginx/conf/conf.d,因此只需要在本地的这个目录就可以了.
cd /usr/local/nginx/conf/conf.d
我们尝试创建一个后缀为.conf的文件
vi test.conf
然后在里面添加以下内容
server {listen 80;server_name 123.57.167.145; ## 重要!!!修改成你的外网 IP/域名location /static { root /usr/share/nginx/html; ## 重要,指的是容器内部的路径index pp.txt;}}
location /static {
root /usr/share/nginx/html; ## 重要,指的是容器内部的路径
index pp.txt;
}
这块注意,表示访问的目录为 root + location 即: /usr/share/nginx/html/static
文件
./usr/share/nginx/html
(因为他有个默认配置文件),以方便返回请求的文件。可以修改根目录,如将根目录修改为/opt/,那么它将以opt为根目录开始查找.现在我们重启这个nginx,以便配置文件生效
docker restart nginx
如果没有启动成功可以用以下命令查看日志
docker logs nginx
我们打开这个文件看看
少了个s,加上重新启动.
docker restart nginx
在html创建一个static文件夹并创建一个文本文件
cd /usr/local/nginx/html
# 创建文件夹
mkdir static
# 创建文件
vi pp.txt
随便添加些内容
访问 :ip /static
可以发现,已经有了
(1). 检查配置文件的配置路径是否写错
(2). 查看日志
cd /usr/local/nginx/log
# 查看后50 行内容tail -n 50 error.log
可以发现
如果找不到文件,它会将找的文件路径标出,用来确定为什么是404
(3). 查看是否写的是容器内的路径.