nginx 笔记

老样子 为了搭建测试和上线的环境 nginx 必不可少! 无奈还是ubuntu 的环境 🙁  怀恋centos   🙂

#安装编译篇
#首先是环境
1)

apt-get install openssl libssl-dev build-essential curl -y

#tips 有时需要 tcp 负载均衡
#打上 tcp 负载均衡补丁 默认没有提供TCP协议的负载均衡

tar -xvzf nginx-1.4.1.tar.gz
cd nginx-1.4.1
patch -p1 < ../nginx_tcp_proxy_module-master/tcp.patch

#出现几个 succeeded 就ok 了

2)编译参数

./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --with-http_stub_status_module --with-http_ssl_module --with-pcre=/opt/nginx-dir/pcre-8.21 --add-module=/opt/nginx-dir/nginx-upstream-fair-master --with-http_realip_module --with-poll_module --add-module=/opt/nginx-dir/nginx_tcp_proxy_module-master --with-openssl=/opt/nginx-dir/openssl-1.0.1e --with-zlib=/opt/nginx-dir/zlib-1.2.8  --with-cc-opt='-O3'

3)完成之后,需要将/usr/local/nginx/logs 目录设置为可写权限,里面是一系列得日志文件:

chmod 777 -R /usr/local/nginx/logs
nginx
curl -i http://localhost

#启动 nginx并判断是否正常

4)配置 Nginx 为系统服务
1、 配置到系统 path 中
# vim /etc/bash.bashrc
在该文件最后添加:

if [ -d "/usr/local/nginx/sbin" ]; then
PATH="$PATH:/usr/local/nginx/sbin"
fi

2、添加启动管理文件并让 ubuntu 开机时自动运行 nginx 网页服务器

# wget http://nginx-init-ubuntu.googlecode.com/files/nginx-init-ubuntu_v2.0.0-RC2.tar.bz2
# tar  – jxvf  nginx-init-ubuntu_v2.0.0-RC2.tar.bz2
# vim nginx
#更改 nginx 安装路径及 nginx 配置文件路径

PATH=/usr/local/nginx/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx
PS="nginx"
PIDNAME="nginx"
PIDFILE=$PIDNAME.pid
PIDSPATH=/var/run
DESCRIPTION="Nginx Server..."
RUNAS=root
SCRIPT_OK=0
SCRIPT_ERROR=1
TRUE=1
FALSE=0
lockfile=/var/lock/subsys/nginx
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

将该文件放到/usr/local/nginx 下并设为可执行,并且添加软连到/etc/init.d 执行:

# sudo mv nginx /usr/local/nginx
# chmod +x /usr/local/nginx/nginx
# sudo ln -s /usr/local/nginx/nginx /etc/init.d/nginx    #添加软连到/etc/init.d 目录下
# update-rc.d -f nginx defaults
#启动和停止/重启命令:

#sudo /etc/init.d/nginx start
#sudo /etc/init.d/nginx stop
#sudo /etc/init.d/nginx restart

完成。

#http 负载均衡

#这里指定多个源服务器,ip:端口,80端口的话可写可不写
#这里的 fair 关键字 是“公平的”Nginx 负载均衡模块,增强了Nginx 提供的round-robin 负载均衡算法,可以跟踪后端服务器的负载来分发请求。需要编译的时候 添加 nginx-upstream-fair-master

http
{
upstream myweb
{
server 192.168.1.111:8080;
Server 192.168.1.112:8080;
fair;
}

server
{
 listen 8080;
 location / {
 proxy_pass http://myweb;
            }
        }
}

#查看状态

location /status {
stub_status on;
access_log /usr/local/nginx/logs/status.log;
auth_basic "NginxStatus";
}

#tcp 负载均衡

tcp {
upstream tcp-test {
server 192.168.1.100:1152;
server 192.168.1.101:1152;
}
server {
listen 8888;
proxy_pass tcp-test;
}
}

#技巧篇
#查看当前的 连接数

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

#查看cpu使用率

top -b -n 1 |grep Cpu |awk '{print $5}'|cut -f1 -d '.'
top -b -n 1 |grep Cpu |awk '{print $5}'|cut -f1 -d '.'|sed -n 2p

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.