下载
wget http://nginx.org/download/nginx-1.17.3.tar.gz
解压nginx
tar -xvf nginx-1.17.3.tar.gz
安装nginx
./configure && make && make install
注: nginx 会在安装出来nginx文件夹
安装nginx rtmp模块
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx-rtmp-module --with-http_ssl_module
编译
make && make install
更改nginx配置
1.加入rtmp
2.在http 加入直播流输出地址
# 工作进程的数量,按照 CPU 核心数的倍数来设置
worker_processes 2;
events {
worker_connections 1024;
}
# 注这个是重点
rtmp {
server {
listen 1935;
chunk_size 4000;
application live {
live on;
record off;
}
application hls{
live on;
hls on;
hls_fragment 5s;
hls_path /usr/local/nginx/hls;#视频流存放地址
}
}
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#连接超时时间
keepalive_timeout 65;
proxy_buffering on;
tcp_nodelay on;
# 开启gzip
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 2;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";
upstream tomcats {
server 127.0.0.1:8033; # 本机 Tomcat
}
server {
listen 80;
server_name 域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name 域名;
ssl_certificate 证书;
ssl_certificate_key 证书;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
#让http请求重定向到https请求
# error_page 497 http://$host$uri?$args;
location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
if (!-f $request_filename) {
proxy_pass http://tomcats;
}
access_log off;
expires 24h;
}
location ~ .*\.(js|css)?$ {
proxy_pass http://tomcats;
proxy_redirect http:// $scheme://;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
access_log off;
expires 24h;
}
location / {
proxy_pass http://tomcats;
proxy_redirect http:// $scheme://;
proxy_redirect off;
proxy_set_header X-nginx-Scheme $scheme;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Real-Host $host; #保留真实域名
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50m;
client_body_buffer_size 128k;
proxy_connect_timeout 60;
proxy_send_timeout 600;
proxy_read_timeout 60;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 5m;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
location /hls { #添加视频流存放地址。
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
#访问权限开启,否则访问这个地址会报403
autoindex on;
alias /usr/local/nginx/hls;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度
expires -1;
add_header Cache-Control no-cache;
#防止跨域问题
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
启动nginx
cd sbin
./nginx