注意:部分文章发布时间较长,可能存在未知因素,购买时建议在本站搜索商家名称,先充分了解商家动态。
交流:唯一投稿邮箱:hostvps@88.com。
本文实例讲述了centos6.5环境安装nginx服务器及负载均衡配置操作。分享给大家供大家参考,具体如下:
1、下载pcre, 是一个用c语言编写的正则表达式函数库
|   								1   								2   								3 | [root@localhost pcre-8.36]# cd /tmp/download/[root@localhost download]# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz[root@localhost download]# tar zxvf pcre-8.36.tar.gz | 
2、下载zlib库
|   								1   								2   								3 | [root@localhost pcre-8.36]# cd /tmp/download/[root@localhost download]# wget http://ncu.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz[root@localhost download]# tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8 | 
4、下载ssl
|   								1   								2   								3   								4 | [root@localhost zlib-1.2.8]# cd ..[root@localhost download]# wget http://www.openssl.org/source/openssl-1.0.1p.tar.gz[root@localhost download]# cd openssl-1.0.1c[root@localhost openssl-1.0.1c]# tar -zxvf openssl-1.0.1c.tar.gz | 
5、下载nginx
|   								1   								2 | [root@localhost download]# wget http://nginx.org/download/nginx-1.2.8.tar.gz[root@localhost download]# tar -zxvf nginx-1.2.8.tar.gz | 
6、安装
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13 | [root@localhost download]mvpcre-8.36 /usr/local/[root@localhost download]mvzlib-1.2.8 /usr/local/[root@localhost download]mvopenssl-1.0.1c /usr/local/[root@localhost download]mvnginx-1.2.8 /usr/local/[root@localhost download]cd/usr/local/[root@localhost local]# cd pcre-8.36[root@localhost pcre-8.36]# ./configure&&make&&make install[root@localhost pcre-8.36] cd../zlib-1.2.8[root@localhost zlib-1.2.8]# ./configure && make && make install[root@localhost zlib-1.2.8]# cd ../openssl-1.0.1c[root@localhost openssl-1.0.1c]# ./config && make && make install[root@localhost openssl-1.0.1c]# cd ../nginx-1.2.8[root@localhost nginx-1.2.8]# ./configure --prefix=/usr/local/nginx && make && make install | 
7、启动nginx
|   								1 | [root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf | 
8、测试
在确保可以连接到服务器的电脑上,浏览器输入装了nginx的机器的ip地址,会看到welcome to nginx!的提示说明安装配配置成功了。
  	 贝壳主机网、bkvps.com
贝壳主机网、bkvps.com
9、设置开机自动启动(shell脚本处理)
|   								1 | [root@localhost logs]# vi /etc/init.d/nginx | 
添加以下shell脚本。
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13   								14   								15   								16   								17   								18   								19   								20   								21   								22   								23   								24   								25   								26   								27   								28   								29   								30   								31   								32   								33   								34   								35   								36   								37   								38   								39   								40   								41   								42   								43   								44   								45   								46   								47   								48   								49   								50   								51   								52   								53   								54   								55   								56   								57   								58   								59   								60   								61   								62   								63   								64   								65   								66   								67   								68   								69   								70   								71   								72   								73   								74 | #!/bin/bash# nginx startup script for the nginx http server# it is v.0.0.2 version.# chkconfig: - 85 15# description: nginx is a high-performance web and proxy server.#       it has a lot of features, but it's not for everyone.# processname: nginx# pidfile: /var/run/nginx.pid# config: /usr/local/nginx/conf/nginx.confnginxd=/usr/local/nginx/sbin/nginxnginx_config=/usr/local/nginx/conf/nginx.confnginx_pid=/var/run/nginx.pidretval=0prog="nginx"# source function library.. /etc/rc.d/init.d/functions# source networking configuration.. /etc/sysconfig/network# check that networking is up.[ ${networking} = "no"] && exit0[ -x $nginxd ] || exit0# start nginx daemons functions.start() {if[ -e $nginx_pid ];then  echo"nginx already running...."  exit1fi  echo-n $"starting $prog: "  daemon $nginxd -c ${nginx_config}  retval=$  echo  [ $retval = 0 ] && touch/var/lock/subsys/nginx  return$retval}# stop nginx daemons functions.stop() {    echo-n $"stopping $prog: "    killproc $nginxd    retval=$    echo    [ $retval = 0 ] && rm-f /var/lock/subsys/nginx/var/run/nginx.pid}# reload nginx service functions.reload() {  echo-n $"reloading $prog: "  #kill -hup `cat ${nginx_pid}`  killproc $nginxd -hup  retval=$  echo}# see how we were called.case"$1"instart)    start    ;;stop)    stop    ;;reload)    reload    ;;restart)    stop    start    ;;status)    status $prog    retval=$    ;;*)    echo$"usage: $prog {start|stop|restart|reload|status|help}"    exit1esacexit$retval | 
保存后,设置权限让所有人可以操作。
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10 | [root@localhost ~]# chmod a+x /etc/init.d/nginx[root@localhost logs]# /etc/init.d/nginx statusnginx (pid 2417 2416) is running...[root@localhost logs]# /etc/init.d/nginx stopstopping nginx: [ ok ][root@localhost logs]# /etc/init.d/nginx startstarting nginx: [ ok ][root@localhost logs]# /etc/init.d/nginx statusnginx (pid 2454 2452) is running...[root@localhost ~]# vi /etc/rc.local | 
添加:
|   								1 | /etc/init.d/nginxstart | 
重启电脑就会生效。
注意:脚本里面关于启动目录的,如果你的安装地址不一样,要进行修改。
负载均衡配置:
现有两部服务器:
  	192.168.137.197     (按照以上操作安装有nginx,作为转发机,虚拟机)
  	192.168.137.33     (无安装nginx,运行有测试用的web工程,虚拟机)
  	10.10.33.59    (无安装nginx,运行有测试用的web工程,本地电脑地址)
  	,运行有测试用的web工程
  	127.0.0.1 web_app
|   								1 | [root@a conf]# vi /usr/local/nginx/conf/nginx.conf | 
配置如下展示:
|   								1   								2   								3   								4   								5   								6   								7   								8   								9   								10   								11   								12   								13   								14   								15   								16   								17   								18   								19   								20   								21   								22   								23   								24   								25   								26   								27   								28   								29   								30   								31   								32   								33   								34   								35   								36   								37   								38   								39   								40   								41   								42   								43   								44   								45   								46   								47   								48   								49   								50   								51   								52   								53   								54   								55   								56   								57   								58   								59   								60   								61   								62   								63   								64 | worker_processes 8;pid /usr/local/nginx/nginx.pid;worker_rlimit_nofile 102400;events{use epoll;worker_connections 102400;}http{ include    mime.types; default_type application/octet-stream; fastcgi_intercept_errors on; charset utf-8; server_names_hash_bucket_size 128; client_header_buffer_size 4k; large_client_header_buffers 4 32k; client_max_body_size 300m; sendfile on; tcp_nopush   on; keepalive_timeout 60; tcp_nodelay on; client_body_buffer_size 512k; proxy_connect_timeout  5; proxy_read_timeout    60; proxy_send_timeout    5; proxy_buffer_size    16k; proxy_buffers      4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; gzipon; gzip_min_length 1k; gzip_buffers   4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types    text/plainapplication/x-javascripttext/cssapplication/xml; gzip_vary on;###2012-12-19 change nginx logslog_format main '$http_x_forwarded_for - $remote_user [$time_local] "$request" '       '$status $body_bytes_sent "$http_referer" '       '"$http_user_agent" $request_time $remote_addr';upstream web_app {server 192.168.137.197:8080 weight=1 max_fails=2 fail_timeout=30s;server 192.168.137.33:8080 weight=1 max_fails=2 fail_timeout=30s;server 10.10.33.59:8080 weight=1 max_fails=2 fail_timeout=30s;}####chinaapp.sinaapp.comserver {  listen 80;  server_name chinaapp.sinaapp.com;  index index.jsp index.html index.htm;  #发布目录/data/www  root /data/www;  location /  {  proxy_next_upstream http_502 http_504 error timeout invalid_header;  proxy_set_header host $host;  proxy_set_header x-real-ip $remote_addr;  proxy_set_header x-forwarded-for$proxy_add_x_forwarded_for;  proxy_pass http://web_app;  expires   3d;  } }} | 
设置host:
|   								1 | [root@a conf]# vi /etc/hosts | 
添加hosts:
|   								1 | 127.0.0.1 web_app | 
启动nginx
|   								1 | [root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf | 
启动三部服务器的web应用:
在192.168.137.197执行指令:
|   								1 | [root@a program]# curl "http://web_app/index.jsp" | 
测试结果如下:
  	
常见问题及解决办法:
1、安装pcre时提示configure: error: you need a c++ compiler for c++ support.
原因是没有安装c++编译器,采用下面的命令安装:
|   								1 | [root@localhost pcre-8.37]# yum install -y gcc gcc-c++ | 
2、启动nginx失败
|   								1   								2 | [root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf/usr/local/nginx/sbin/nginx: error whileloading shared libraries: libpcre.so.1: cannot openshared object file: no such fileor directory | 
原因是64bit的系统,但是默认取了/usr/local/lib里面的包
检查方法:
|   								1   								2   								3   								4   								5 | [root@localhost nginx]# cd /usr/local/[root@localhost local]# ls /lib64/ |grep pcrelibpcre.so.0libpcre.so.0.0.1[root@localhost local]# ls /lib/ |grep pcre | 
说明缺失的包在lib64
设置软连接来解决:
|   								1   								2   								3 | [root@localhost local]# ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1[root@localhost local]# cd nginx[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf | 
3、启动报错:
报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: address already in use)
  	解决办法:sudo fuser -k 80/tcp
端口被占用,关闭占用端口
希望本文所述对大家centos服务器配置有所帮助。
 贝壳主机网
贝壳主机网








