前言
记录个人的nginx.conf
设置,前期是添加了nginx-rtmp-module
,后期添加了nginx-http-flv-nodule
。
结构
开头
user
运行用户,默认nginx,可不设置
worker_processes
处理进程数,管理并发处理服务,一般与CPU核数一致
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events
worker_connections
单个进程支持的最大连接数量
events {
worker_connections 1024;
}
rtmp
# 推流时会发布到多个子进程
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp {
server {
# 监听1935端口接收连接
listen 1935;
# 创建rtmp应用myapp
application myapp {
live on; # 当路径匹配时,开始播放
gop_cache on; # 打开GOP缓存,减少首屏等待时间
}
# 创建rtmp应用myapp
application live {
live on;
gop_cache on;
}
}
}
http
Tip:我页面用到的nginx-http-flv-module模块具体是用在了网页中,这里只是部署了两个测试页面/live
和/flv
,具体的模块安装步骤参考我的另一篇文章
http {
#文件扩展名与类型映射表
include mime.types;
default_type application/octet-stream;
# 配置信息
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
client_body_buffer_size 20m;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 256k;
gzip_buffers 16 8k;
proxy_buffer_size 64k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
keepalive_timeout 0;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
proxy_connect_timeout 600s;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
sendfile on;
#tcp_nopush on;
#gzip on;
server {
# 监听端口号和服务器地址
listen 80;
server_name IP;
# 配置信息
#access_log logs/host.access.log main;
large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
# 开启这两个页面可以观察rtmp流的统计
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/module/nginx-rtmp-module/;
}
# 首页
location / {
# 把首页反向代理到指定ip
proxy_pass IP:PORT;
}
}
# 设置的一个存储图片并发布到公网的页面
location /images {
# 根地址
root /home/OldHome/;
# 允许所有ip访问
allow all;
autoindex on; #打开浏览功能
}
location /live {
# 配置flv播放
flv_live on;
}
location /flv {
add_header 'Access-Control-Allow-Origin' '*';
# 配置flv播放
flv_live on;
chunked_transfer_encoding on;
}
# 错误页面设置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
这里附上全部的nginx.conf
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
rtmp_auto_push on;
rtmp_auto_push_reconnect 1s;
rtmp {
server {
listen 1935;
application myapp {
live on; # 当路径匹配时,开始播放
gop_cache on; # 打开GOP缓存,减少首屏等待时间
}
application live {
live on;
gop_cache on;
}
}
}
http {
include mime.types;
default_type application/octet-stream;
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
client_body_buffer_size 20m;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 128k;
fastcgi_busy_buffers_size 256k;
gzip_buffers 16 8k;
proxy_buffer_size 64k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
keepalive_timeout 0;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
proxy_connect_timeout 600s;
proxy_send_timeout 1200;
proxy_read_timeout 1200;
sendfile on;
#tcp_nopush on;
#gzip on;
server {
listen 80;
server_name IP;
#access_log logs/host.access.log main;
large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
proxy_connect_timeout 300;
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /usr/local/nginx/module/nginx-rtmp-module/;
}
# 首页
location / {
proxy_pass IP:PORT;
}
}
location /images {
root /home/OldHome/;
allow all;
autoindex on; #打开浏览功能
}
location /live {
flv_live on;
}
location /flv {
add_header 'Access-Control-Allow-Origin' '*';
flv_live on;
chunked_transfer_encoding on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}