0
点赞
收藏
分享

微信扫一扫

利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践



利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践


  • ​​前言​​
  • ​​搭建服务​​
  • ​​Nginx配置负载均衡​​
  • ​​配置动静分离​​
  • ​​关于作者​​


前言

业务实现为

利用3个docker容器封装flask服务,每个容器拥有不同的ip(如:81, 82, 83)向外暴露。利用nginx实现端口转发,负载均衡以及动静分离

其中flask为一个开源的在线直播SDK(好吧 在线直播服务是幌子 这篇主要是结束如何搭建动静分离的)

项目地址:​​https://github.com/99kies/MRoom​​

最终呈现

利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践_运维

当然只要你稍微了解一下 ​​​https://github.com/AgoraIO​​​ 这个项目,然后你就可以使用这个服务了!(App ID,Channel,Token。自己配置哟,我是来实践负载均衡的)

搭建服务

我们先获取一下这个demo文件,然后build一个镜像(我已经写好Dockerfile了)。

git clone https://github.com/99kies/MRoom
cd MRoom
docker build -t agora .

启动三个服务端口分别设置为(81,82,,83)

docker run -id -p 81:8000 --name agora1 agora
docker run -id -p 82:8000 --name agora2 agora
docker run -id -p 83:8000 --name agora3 agora

此时其实已经可以通过81,82,83端口来访问服务了。

但是我们需要搭建负载均衡和动静分离!

Nginx配置负载均衡

/etc/nginx/conf.d或者/balabla/nginx/conf.d下创建一个agora.conf文件,当然/etc/nginx/nginx.conf或者/balabla/nginx/nginx.conf的http内要这样子编写

include /etc/nginx/conf.d/agora.conf;
# include /balabala/nginx/conf.d/agora.conf;

配置conf.d/agora.conf

upstream agora_server{
server 127.0.0.1:81;
server 127.0.0.1:82;
server 127.0.0.1:83;
}


server {
listen 80;
#server_name www.agora.com;

location / {
proxy_pass http://agora_server;
}
}

没启动nginx的启动一下,启动了的nginx -s reload重载一下配置文件。

之后 通过 访问80端口就成功辣。

配置动静分离

我们首先看一下我们的服务里的静态文件

利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践_docker_02

用nginx动静分离的概念就是,让nginx服务器运行静态文件,docker中的flask服务通过调用nginx运行的静态文件达到效果,也可以理解你自己搭建了一个cdn服务。

  1. 配置conf/agora.conf文件。
upstream agora_server{
server 127.0.0.1:81;
server 127.0.0.1:82;
server 127.0.0.1:83;
}


server {
listen 80;
#server_name www.agora.com;

location / {
proxy_pass http://agora_server;
}

location ~ .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff) {
root /home/kies/www/static;
}
}

最后一个location就是我们静态文件的地址,nginx会根据这个目录下的内容启动服务。

此时启动会导致静态文件不能成功加载

利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践_运维_03

2. 将MRoom项目中的MRoom/app/static文件复制到/home/kies/www/static下。

3. nginx -s reload 重载配置文件

4. 访问80端口,动静分离成功搭建!

利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践_动静分离_04

提示

如果遇到不能成功搭建,请查看/var/log/nginx/下的报错日志,根据日志内容进一步完善项目。

关于agora这个开源项目 ​​https://github.com/AgoraIO​​

关于作者


利用Nginx和Docker搭建一个在线直播的web服务——动静分离实践_nginx_05


欢迎点赞????评论哟~



举报

相关推荐

0 条评论