您的位置:首页 > 运维架构 > Nginx

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

2016-01-17 21:54 671 查看
第一步:安装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、启动Nginx
service nginx start
或重启服务器(Nginx已经做了开机自启)。

至此,Nginx的配置就搞完了,下一章我们搞一搞Keepalived的安装部署。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: