首页 > 系统相关 >unknown directive "mp4" in /etc/nginx/nginx.conf

unknown directive "mp4" in /etc/nginx/nginx.conf

时间:2023-01-06 17:26:08浏览次数:50  
标签:http directive etc -- module nginx mp4 conf

unknown directive "mp4" in /etc/nginx/nginx.conf


 

1、问题背景

想通过nginx实现mp4格式视频的播放功能。

在nginx配置文件(/etc/nginx/nginx.conf)中的配置如下:

server{
   listen 801;  #监听端口
   location ~* .*\.mp4 {
        root /data/video/;   #视频保存的目录
        mp4;
        mp4_buffer_size 1m;#处理mp4初始内存大小
        mp4_max_buffer_size 50m;#处理mp4最大内存大小
   }
}

其中, /data/video/ 目录下存放 mp4格式的视频文件。

 

2、问题现象

使用如下命令重启nginx,出现报错。

1)nginx重启命令

systemctl restart nginx

 

2)nginx报错信息

通过查看nginx的错误日志,可以看到报错信息:unknown directive "mp4" in /etc/nginx/nginx.conf   

错误信息翻译为: /etc/nginx/nginx.conf中的未知指令“mp4”

 

 

3、问题原因

网上找了一些资料,有说是配置文件的编码不是UTF-8导致的,但是通过如下命令,可以看到 nginx.conf 文件的编码格式就是 UTF-8。

file -i nginx.conf

 

由此可见,并非文件编码问题。

其实,从nginx的错误日志中可以看到线索,unknown directive "mp4" (未知指令mp4”),说明nginx缺少 http_mp4 模块。

 

 

4、解决方案

重新编译安装nginx,并在 ./configure 命令后追加 --with-http_mp4_module 

1)进入nginx的源文件目录

cd /usr/local/nginx-1.22.1

/usr/local/nginx-1.22.1 是个人的nginx源文件目录,此目录根据实际情况而定。

 

2)配置增加 --with-http_mp4_module 模块

./configure --prefix=/etc/nginx \
            --sbin-path=/usr/sbin/nginx \
            --modules-path=/usr/lib64/nginx/modules \
            --conf-path=/etc/nginx/nginx.conf \
            --error-log-path=/var/log/nginx/error.log \
            --pid-path=/var/run/nginx.pid \
            --lock-path=/var/run/nginx.lock \
            --user=nginx \
            --group=nginx \
            --build=CentOS \
            --http-log-path=/var/log/nginx/access.log \
            --with-http_stub_status_module\
            --add-module=/usr/local/modsecurity-nginx \
            --with-http_ssl_module \
            --with-http_mp4_module

其中,

--add-module=/usr/local/modsecurity-nginx 用于实现ModSecurity安全加固的,如果不涉及,可以去除此行;

--with-http_ssl_module 模块用于实现 http_ssl 功能,如果不涉及,可以去除此行。

 

3)编译安装 nginx

make && make install

 

4)重启 nginx 服务

systemctl restart nginx

 

5)查看nginx 状态

systemctl status nginx

 

6)查看nginx模块信息

nginx -V

增加 http_mp4 模块的前后,对比效果如下:

 

7)补充

如果想增加对“flv”格式的支持,同理,需要在nginx 的 ./configure 中增加 http_flv 模块。

--with-http_flv_module

 

 

PS:

参考博客如下:

https://blog.csdn.net/huqi666/article/details/120607615

https://blog.csdn.net/hua0721/article/details/128074879

标签:http,directive,etc,--,module,nginx,mp4,conf
From: https://www.cnblogs.com/miracle-luna/p/17031055.html

相关文章

  • LeetCode 删除数组中重复项 26 80
    26(80)给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次(使得出现次数超过两次的元素只出现两次),返回删除后数组的新长度。元素的相对顺......
  • Linux +Docker +Nginx 部署代理转发初探
    很多开发人员仅仅只会码代码,如果让开发人员部署一些深入点的东西,或者做负载均衡等,很多开发人员估计就懵逼了,作为一个专业的开发还需要懂一些基本的运维知识;虽然说在互联......
  • nginx的使用
    一、安装 二、配置文件 三、日志配置 四、参数定义1、nginx代理文件夹,开启目录流量,类似FTP#server或location段里配置#启用目录流量,相当于ftpautoindexo......
  • nginx 安装 配置 支持 访问 thinkphp5
    server{//这个在windows下配置是ok的,linux下不知道是否可以生效!待后续验证listen8999;server_namelocalhost;location/{root/......
  • netcore 容器内部监听设置localhost 外部无法访问
    情况1  由于localhost只能够在容器内部访问,所以在设置的时候改为*号,而不是固定ip。情况2  也可能由于只配置了容器和宿主机的映射,容器内部未监听端口号导致情况3......
  • netcore添加skywalking链式追踪
    简介  在分布式系统当中,想要监控服务与服务之间调用耗时,或者是查问题的时候,不能像向单机那种形式去查询.查找了一段时间发现目前市场上用的是skywalking,由华为大佬......
  • .NETCore Docker实现容器化与私有镜像仓库管理
    一、Docker介绍Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖。相......
  • 微服务(入门三):netcore ocelot api网关结合consul服务发现
    简介 api网关是提供给外部调用的统一入口,类似于dns,所有的请求统一先到api网关,由api网关进行指定内网链接。 ocelot是基于netcore开发的开源API网关项目,功能强大,使用......
  • nginx配置高可用的集群
    1.什么是nginx高可用(1)需要两台nginx服务器(2)需要keepalived(3)需要虚拟ip2.配置高可用的准备工作(1)需要两台服务器192.168.17.129和192.168.17.131(2)在两台服务器安装nginx(3)在......
  • 微服务(入门二):netcore通过consul注册服务
    基础准备1.创建asp.netcoreWeb应用程序选择Api2.appsettings.json配置consul服务器地址,以及本机ip和端口号信息 {"Logging":{"LogLevel":{"D......