背景
有一台阿里云服务器,在上面使用了docker创建了nginx服务器。现需要将mp4文件放到服务器上,然后通过nginx静态资源目录配置,实现通过浏览器播放mp4文件。
遇到问题
访问403
- 原因: nginx是由root用户启动,查看进程发现worker进程是nobody用户,nginx下的静态文件worker进程没有访问权限。
- 解决方法:修改nginx配置文件conf/nginx.conf,将user配置修改与启动用户一致。
user root; worker_processes auto;
访问404
- 背景:nginx的
docker-compose.yml
version: '3' services: nginx: image: nginx container_name: nginx restart: always ports: - '80:80' - '443:443' volumes: - ./conf/nginx.conf:/etc/nginx/nginx.conf - ./conf.d:/etc/nginx/conf.d - ./html:/usr/share/nginx/html - ./logs:/var/log/nginx
- 原因: nginx 配置中,alias 后面的目录配置成了宿主机的映射目录
- 解决方法:alias 后面的目录要配置成nginx容器内的路径
location ^~/static/ { # 注意这里静态资源文件路径,是docker创建的nginx容器内的路径,而不是宿主机映射的路径 alias /usr/share/nginx/html/; autoindex on; autoindex_exact_size on; autoindex_localtime on; charset utf-8; }
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。