第二章:高性能Web宏观架构之代理服务器Nginx安装部署

第一步:安装yum源,这里就不多说了,自行解决吧,啧啧。。。

第二步:安装Nginx
背景如下:
1、假设,所有的安装包默认被拷贝到 /tmp/ 目录下。
2、Nginx连接数和CPU核数相关,可在配置文件中配置。所以CPU核数选择请参考实际情况。至少2台(虚拟)主机,每台(虚拟)主机1个静态IP地址。
3、由于反向代理为主备双活关系,所以需要2+台服务器均做如下相同配置。
4、离线安装包及配置文件地址:http://pan.baidu.com/s/1bovyvld 密码:weld

步骤如下:
1、安装gcc、gcc++、OpenSSL、make、patch

yum install -y gcc gcc-c++ openssl openssl-devel make patch

2、安装pcre(文件请见上方链接,文件名:pcre-8.34.tar.gz)

cd /tmp
tar -zxvf pcre-8.34.tar.gz -C /usr/src/
#等待解压完毕…
cd /usr/src/pcre-8.34/
./configure
#等待配置完毕…
make && make install

3、安装zlib(文件请见上方链接,文件名:zlib-1.2.8.tar.gz)

cd /tmp
tar -zxvf zlib-1.2.8.tar.gz -C /usr/src/
#等待解压完毕…
cd /usr/src/zlib-1.2.8/
./configure
#等待配置完毕…
make && make install

4、解压Nginx1.4.6(文件请见上方链接,文件名:nginx-1.4.6.tar.gz)

cd /tmp
tar -zxvf nginx-1.4.6.tar.gz -C /usr/src/

5、加载Nginx upstream check模块(文件请见上方链接,文件名:nginx_tcp_proxy_module-master.tar.gz 、nginx_upstream_check_module-master.tar.gz 、nginx-sticky-module-1.1.tar.gz)

cd /tmp
tar -zxvf nginx_upstream_check_module-master.tar.gz 
tar –zxvf nginx_tcp_proxy_module-master.tar.gz
cd /usr/src/nginx-1.4.6/
patch -p1 < /tmp/nginx_upstream_check_module-master/check_1.2.6+.patch
patch -p1 < /tmp/nginx_tcp_proxy_module-master/tcp.patch

6、安装nginx

cd /usr/src/nginx-1.4.6/
./configure  --add-module=/tmp/nginx_upstream_check_module-master --add-module=/tmp/nginx_tcp_proxy_module-master --add-module=/tmp/nginx-sticky-module-1.1
#等待配置完毕…
make && make install

至此就安装完成了Nginx,下面开始配置

配置步骤如下:
1、配置start, stop, reload, restart脚本
1.1、将下面脚本拷贝到/etc/init.d/目录下(文件请见上方链接,文件名:nginx脚本/nginx),如不下载,可在/etc/init.d/目录下创建nginx文件,复制如下内容也可:

#! /bin/sh
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

set -e
[ -x "$DAEMON" ] || exit 0

do_start() {
 $DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}

do_stop() {
 kill -INT `cat $PIDFILE` || echo -n "nginx not running"
}

do_reload() {
 kill -HUP `cat $PIDFILE` || echo -n "nginx can't reload"
}

case "$1" in
 start)
 echo -n "Starting $DESC: $NAME"
 do_start
 echo "."
 ;;
 stop)
 echo -n "Stopping $DESC: $NAME"
 do_stop
 echo "."
 ;;
 reload|graceful)
 echo -n "Reloading $DESC configuration..."
 do_reload
 echo "."
 ;;
 restart)
 echo -n "Restarting $DESC: $NAME"
 do_stop
 do_start
 echo "."
 ;;
 *)
 echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
 exit 3
 ;;
esac

exit 0

1.2、赋予可执行权限

chmod +x /etc/init.d/nginx

2、配置libpcre.so.1
2.1、如果执行ldd $(which /usr/local/nginx/sbin/nginx) 结果为:

linux-vdso.so.1 =>  (0x00007fff185ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff2f3536000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff2f32ff000)
libpcre.so.1 => not found
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007ff2f2f64000)
libz.so.1 => /lib64/libz.so.1 (0x00007ff2f2d4e000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff2f29bb000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff2f3758000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007ff2f2759000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff2f2555000)

那么,请用find命令找到libpcre.so.0.0.1,并且在libpcre.so.0.0.1所在的lib目录下执行:

ln -s libpcre.so.0.0.1 libpcre.so.1

2.2、配置开机启动
1.1中将脚本放入 /etc/init.d/ 目录后,执行:chkconfig --add nginx
chkconfig nginx on

2.3、配置Nginx配置文件(文件请见上方链接,文件名:nginx.conf),当然只是一个参考,具体的内容可根据实际情况进行查询配置。
配置文件要点:

1.worker_processes  4; #(虚拟)主机的CPU核数
2.worker_connections  1024;   #nginx支持的总连接数就等于worker_processes * worker_connections
3.负载均衡配置方法
   upstream cssServer {
        server  ip1:8080 weight=2;
        server  ip2:8080 weight=1;
        server  ip3:8080 backup;    #ip_hash方式与backup关键字不可以一起使用
    } 

    server {
            listen       8080;
            server_name  ip地址;

        location / {
            proxy_pass        http://server;
            proxy_set_header   Host             $host:$server_port;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }

            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                    root   html;
            }
        }

2.4、配置防火墙
如果为测试环境可以直接关闭防火墙,如果为正式环境请做端口开放(如果要配置,请参考Nginx的配置文件打开相对应的端口):

service iptables stop
chkconfig iptables off

2.5、启动Nginxservice nginx start 或重启服务器(Nginx已经做了开机自启)。

至此,Nginx的配置就搞完了,下一章我们搞一搞Keepalived的安装部署。

你可能感兴趣的:(nginx)