《Nginx與Nginx-rtmp-module搭建RTMP視頻直播和點播服務器》一文簡單介紹了關於直播數據流的nginx相關配置,下面簡單介紹下各種項目如何配置nginx。
web項目、靜態頁面、websocket的配置
web項目除了在Tomcat容器里做相應配置外,nginx的配置也很重要。以下為web項目、靜態頁面、websocket、rtmp項目的配置詳情:
#user nobody; 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服務 rtmp { server { listen 1935; #//服務端口 chunk_size 4096; #//數據傳輸塊的大小 application vod { play /opt/video; #//視頻文件存放位置。 } #直播 application live{ live on; record off; #record all; record_path /opt/video/hls; #record_max_size 50M; record_max_size 2M; hls on; #這個參數把直播服務器改造成實時回放服務器。 wait_key on; #對視頻切片進行保護,這樣就不會產生馬賽克了 hls_path /opt/video/hls; #切片視頻文件存放位置 hls_fragment 600s; #設置HLS片段長度 hls_playlist_length 1m; #設置HLS播放列表長度,這里設置的是10分鍾 hls_continuous on; #連續模式 hls_cleanup on; #對多余的切片進行刪除 hls_nested on; #嵌套模式 allow play all; } } } http { include 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"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; gzip on; gzip_min_length 1k; gzip_buffers 16 64k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain application/x-javascript text/css application/xml application/json; gzip_vary on; map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream wordoor_chat_api_clusters { ip_hash; server 192.168.1.31:8080; server 192.168.1.31:8080; } server { listen 80; server_name api1.gopopon.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; add_header 'Access-Control-Allow-Origin' "*"; } #socket location ~ ^/wordoor_chat_api/v1/websocket/(.*) { proxy_pass http://wordoor_chat_api_clusters/chatrest/websocket/$1?$args; proxy_read_timeout 86400; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #web項目 location /wordoor_chat_api/v1/ { proxy_pass http://wordoor_chat_api_clusters/chatrest/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #靜態頁面 "/coursestatistics"會自動拼接到"/apps/statics"后面去 location /coursestatistics{ root /apps/statics; # index index.html index.htm; 不配置則默認 index.html autoindex off;# 是否可以以目錄形式打開 #add_header 'Access-Control-Allow-Origin' "*"; 跨域 } } server { listen 8097; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location /wordoor_chat_api/v1/ { proxy_pass http://wordoor_chat_api_clusters/chatrest/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } include /usr/local/openresty/nginx/conf/server/*; include /usr/local/openresty/nginx/conf/vhosts/*; }
配置完成后,檢查nginx配置文件然后reload即可訪問