自我扩展知识:异步io
nginx启动脚本:
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=([^ ]*).*/1/g' -` if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $nginx -HUP RETVAL=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac
1、下载tengine
下载
下边是使用linux直接下载,或者用windows下载然后上传到linux上,但是这样比较麻烦。
wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
解压
tar -zxvf tengine-2.2.0.tar.gz
2、编译安装
安装编译依赖
yum -y install gcc gcc-c++ autoconf automake
yum -y install openssl-devel pcre-devel zlib-devel
编译tengine
进入tengine解压目录,必须进入解压以后的目录,负责后边无法继续下去
cd tengine-2.2.0
检查编译环境,注意:–prefix 后面跟着的是你的nginx安装的路径
./configure --prefix=/opt/sxt/nginx
--with-http_gzip_static_module
--with-http_realip_module
--with-http_stub_status_module
--with-http_concat_module
--with-pcre
如果这一步没有提示缺少依赖的话,说明检查通过,如果缺少依赖,请看上边安装依赖库。接下来就是编译了。
make && make install
//进入你的安装目录
/opt/sxt/nginx/sbin
//执行nginx的启动文件
cd /opt/sxt/nginx/conf
master 是 worker 的父进程
http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_core_module.html
负载均衡:
----------------------------------------------------------------------------------------------------------------------------------------
这之后和上面没有关系 只是用于知识参考
3、加入系统服务,设置开机启动
创建启动文件
点击nginx启动文件下载启动文件,可能会因为windows的编码问题导致linux无法识别,所以用windows下载,然后用记事本之类的软件打开。然后Linux进入cd /etc/init.d/,用vi编辑器创建文件vi nginx。吧记事本里的直接全部复制到vi编辑器里。
注意:这块一定要记得修改你的安装路径,和配置路径
//这是你电脑nginx的启动文件的地址,
nginx="/home/msoft/tengine/sbin/nginx"
//nginx的配置文件地址
NGINX_CONF_FILE="/home/msoft/tengine/conf/nginx.conf"
然后保存文件,这时候会发现nginx这文件颜色不是绿色的,表示没有执行权限。
配置开机启动
赋予执行权限
chmod 755 nginx
将该文件加到系统服务
chkconfig --add nginx
设置开机启动
chkconfig nginx on
查看是否添加成功
chkconfig --list nginx
启动,停止,重新装载
service nginx start|stop|reload
4、配置反向代理
进入你的nginx的你装目录
cd /home/msoft/tengine/conf/
vi nginx.conf
配置反向代理,目录结构看下图,可以配置多个,案例中只配置了一个。
upstream myback {
server localhost:8080;
server 192.168.1.110:8080;
}
location / {
proxy_pass http://myback ;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
注意:这块直接配置ip:端口,也可以转发到具体某个模块上,图中/yasaka,那个就是配置的某个模块。到时候在浏览器直接输入以下地址即可被代理到具体的后端服务器上。
http://yasaka.iask.in/
http://yasaka.iask.in/yasaka
配置健康检查
tengine自带健康检查,加入如下配置,配置结构看图片
这是案例地址http://yasaka.iask.in/status
location /status {
check_status;
}
然后在反向代理中加入,那些后端服务器需要进行健康检查。
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0
";
check_http_expect_alive http_2xx http_3xx;
注意:这里记得换行,否则会解析错误
6、总结
本文介绍了tengine(nginx)编译安装,加入开机启动,配置反向代理和健康检查一整套。具体的细节或者哪一个模块想深入,请查阅官方文档,我就不在这里重复的造轮子了。
详细地址: https://blog.csdn.net/yp090416/article/details/75048966