nginx是一款高性能的服务器,常用作反向代理、正向代理、动静分离以及负载均衡。本文将阐述使用docker安装nginx服务器,并通过nginx访问之前fastdfs上传的文件。
1、获取nginx
docker pull nginx
2、创建本地的nginx相关目录
mkdir -p /root/nginx/conf
touch /root/nginx/conf/nginx.conf
mkdir -p /data/nginx/logs
"/root/docker/fastdfs"该目录已经存在,就是我们上一篇文章当中创建的fastdfs的目录
3、将以下内容编辑到/root/nginx/conf/nginx.conf
user root; # 以root权限启动nginx,避免了出现406错误
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
location /group1/M00 {
#映射逻辑路径到物理路径,倘若url中出现"/group1/M00",则替换为"/root/docker/fastdfs/storage/data"
alias /root/docker/fastdfs/storage/data;
}
}
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
3、启动nginx
# privileged=true 代表宿主机子可以访问容器的资源
# -p 80:80 代表宿主机子的端口80映射到容器的端口80
# -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf 代表宿主的文件映射到容器的文件
# -v /data/nginx/logs:/var/log/nginx 代表宿主的目录映射到容器的目录
# -v /root/docker/fastdfs:/root/docker/fastdfs 代表宿主的目录映射到容器的目录
# docker & 以后台方式启动docker镜像
docker run --name mynginx --privileged=true -p 80:80 -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -v /root/docker/fastdfs:/root/docker/fastdfs nginx&
4、测试
- 输入http://192.168.100.192/ ,我们看到出现了nginx的欢迎目录
- 输入http://192.168.100.192/group1/M00/00/00/wKhkwFyrZ9-AWJPpAAAABjY6MCA50.html,我们看到打印出了hello,而这个文件正是上一篇文章中我们通过图片服务器上传的文件【注意,每次上传文件,哪怕是相同的文件,名称都会不一样,读者要根据自己的实际情况确认上传以后的文件名】
至此,我们完成了通过docker安装nginx服务,并配置了nginx的反向代理,实现了通过nginx访问图片服务器上传的文件。