本章开始将介绍如何搭建一套完整的直播系统,首先介绍Nginx的安装,操作系统使用的是Ubuntu
Nginx安装
1.下载安装包到指定目录
wget http://nginx.org/download/nginx-1.12.2.tar.gz
2. 解压
tar -xvzf nginx-1.12.2.tar.gz
3.配置
直接选择默认
cd nginx-1.12.2
./configure
4.编译和安装
make && make install
这里不再细说,如果报错可以参考文章Nginx安装。
配置防火墙
安装Nginx后需要配置防火墙,开启80端口号,因为默认情况下系统是默认不允许外网访问80端口号,修改防火墙配置:
vim /etc/sysconfig/iptables
添加配置项
A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
这是centos下的配置工具,而Ubuntu则可以通过直接输入指令:
sudo ufw allow 22/tcp
允许所有的外部IP访问本机的22/tcp (ssh)端口。
启动Nginx服务
/usr/local/nginx/sbin/nginx
查看进程信息
ps -ef | grep nginx
正常的话结果如下图
默认情况下会有一个主进程master和一个工作进程worker,工作进程通常会配置多个,Nginx基于事件的模型和依赖操作系统的机制来高效地在工作进程间分配请求,工作进程数量在配置文件中定义。
配置完成后测试80端口,执行结果如下图
本地通过浏览器访问:http://127.0.0.1:80,正常结果如下图
默认的访问的网页位置是:
/usr/local/nginx/html/index.html
设置Nginx自动开机,创建脚本
vim /etc/init.d/nginx
输入脚本内容
#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
# Author: licess
# website: http://lnmp.org
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
case "$1" in
start)
echo -n "Starting $NAME... "
if netstat -tnpl | grep -q nginx;then
echo "$NAME (pid `pidof $NAME`) already running."
exit 1
fi
$NGINX_BIN -c $CONFIGFILE
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Stoping $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
$NGINX_BIN -s stop
if [ "$?" != 0 ] ; then
echo " failed. Use force-quit"
exit 1
else
echo " done"
fi
;;
status)
if netstat -tnpl | grep -q nginx; then
PID=`pidof nginx`
echo "$NAME (pid $PID) is running..."
else
echo "$NAME is stopped"
exit 0
fi
;;
force-quit)
echo -n "Terminating $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
kill `pidof $NAME`
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
reload)
echo -n "Reload service $NAME... "
if netstat -tnpl | grep -q nginx; then
$NGINX_BIN -s reload
echo " done"
else
echo "$NAME is not running, can't reload."
exit 1
fi
;;
configtest)
echo -n "Test $NAME configure files... "
$NGINX_BIN -t
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
exit 1
;;
esac
对脚本设置权限
chmod +x /etc/init.d/nginx
检测脚本是否能正常执行
/etc/init.d/nginx restart ##这个管理脚本支持的命令有start|stop|force-quit|restart|reload|status|configtest
若没有错误,可以开始把他加入启动项了
sysv-rc-conf --list #我们先查看一下list中有没有我们刚刚加进去的这个nginx管理脚本
sysv-rc-conf nginx on #然后用这个命令添加开机自启动
Nginx安装先说到这里。