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

来源:互联网 发布:迅龙数据恢复 注册码 编辑:程序博客网 时间:2024/06/08 13:32

第一步:安装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 /tmptar -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 /tmptar -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 /tmptar -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 /tmptar -zxvf nginx_upstream_check_module-master.tar.gz tar –zxvf nginx_tcp_proxy_module-master.tar.gzcd /usr/src/nginx-1.4.6/patch -p1 < /tmp/nginx_upstream_check_module-master/check_1.2.6+.patchpatch -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 serverPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDESC="nginx daemon"NAME=nginxDAEMON=/usr/local/nginx/sbin/$NAMECONFIGFILE=/usr/local/nginx/conf/$NAME.confPIDFILE=/usr/local/nginx/logs/$NAME.pidSCRIPTNAME=/etc/init.d/$NAMEset -e[ -x "$DAEMON" ] || exit 0do_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 ;;esacexit 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 foundlibcrypto.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_connections3.负载均衡配置方法   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 stopchkconfig iptables off

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


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

0 0