CentOS6.5安装nginx及负载均衡配置

所有的安装包可以去以下地址下载,或者自行去官网下载,下面都有介绍.

所有安装包地址:http://download.csdn.net/detail/carboncomputer/9238037

原文地址:http://www.cnblogs.com/zhongshengzhen/p/nginx.html

1、下载PCRE, 是一个用C语言编写的正则表达式函数库

[[email protected] pcre-8.36]# cd /tmp/download/

[[email protected] download]# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

[[email protected] download]# tar zxvf pcre-8.36.tar.gz

2、下载zlib库

[[email protected] pcre-8.36]# cd /tmp/download/
[[email protected] download]# wget http://ncu.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz

[[email protected] download]# tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8

4、下载SSL

[[email protected] zlib-1.2.8]# cd ..
[[email protected] download]# wget http://www.openssl.org/source/openssl-1.0.1p.tar.gz

[[email protected] download]# cd openssl-1.0.1c

[[email protected] openssl-1.0.1c]# tar -zxvf openssl-1.0.1c.tar.gz

5、下载nginx

[[email protected] download]# wget http://nginx.org/download/nginx-1.2.8.tar.gz

[[email protected] download]# tar -zxvf nginx-1.2.8.tar.gz

6、安装

[[email protected] download]mv pcre-8.36 /usr/local/

[[email protected] download]mv zlib-1.2.8 /usr/local/

[[email protected] download]mv openssl-1.0.1c /usr/local/

[[email protected] download]mv nginx-1.2.8 /usr/local/

[[email protected] download]cd /usr/local/

[[email protected] local]# cd pcre-8.36

[[email protected] pcre-8.36]# ./configure&&make&&make install

[[email protected] pcre-8.36] cd ../zlib-1.2.8

[[email protected] zlib-1.2.8]# ./configure && make && make install

[[email protected] zlib-1.2.8]# cd ../openssl-1.0.1c

[[email protected] openssl-1.0.1c]# ./config && make && make install

[[email protected] openssl-1.0.1c]# cd ../nginx-1.2.8

[[email protected] nginx-1.2.8]# ./configure --prefix=/usr/local/nginx && make && make install

7、启动nginx

[[email protected] nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

8、测试

在确保可以连接到服务器的电脑上,浏览器输入装了nginx的机器的ip地址,会看到Welcome to nginx!的提示说明安装配配置成功了。

 

9、设置开机自动启动(shell脚本处理)

[[email protected] logs]# vi /etc/init.d/nginx

添加以下shell脚本。

#!/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.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   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" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac
exit $RETVAL

保存后,设置权限让所有人可以操作。

[[email protected] ~]# chmod a+x /etc/init.d/nginx

[[email protected] logs]#  /etc/init.d/nginx status
nginx (pid 2417 2416) is running...
[[email protected] logs]#  /etc/init.d/nginx stop
Stopping nginx: [  OK  ]
[[email protected] logs]#  /etc/init.d/nginx start
Starting nginx: [  OK  ]
[[email protected] logs]#  /etc/init.d/nginx status
nginx (pid 2454 2452) is running...

[[email protected] ~]# vi /etc/rc.local

添加:

/etc/init.d/nginx start

重启电脑就会生效。

注意:脚本里面关于启动目录的,如果你的安装地址不一样,要进行修改。

 

负载均衡配置:

现有两部服务器:

192.168.137.197     (按照以上操作安装有nginx,作为转发机,虚拟机)

192.168.137.33     (无安装nginx,运行有测试用的web工程,虚拟机)

10.10.33.59    (无安装nginx,运行有测试用的web工程,本地电脑地址)

,运行有测试用的web工程

127.0.0.1 web_app

[[email protected] conf]# vi /usr/local/nginx/conf/nginx.conf

配置如下展示:

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;

gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascript text/css application/xml;
  gzip_vary on;

###2012-12-19 change nginx logs
log_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.com
server {  
    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:

[[email protected] conf]# vi /etc/hosts

添加hosts:

127.0.0.1 web_app

启动nginx

[[email protected] nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

启动三部服务器的web应用:

在192.168.137.197执行指令:

[[email protected] PROGRAM]# curl "http://web_app/index.jsp"

测试结果如下:

常见问题及解决办法:

1、安装PCRE时提示configure: error: You need a C++ compiler for C++ support.

原因是没有安装c++编译器,采用下面的命令安装:

[[email protected] pcre-8.37]# yum install -y gcc gcc-c++

2、启动nginx失败

[[email protected] nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

原因是64bit的系统,但是默认取了/usr/local/lib里面的包

检查方法:

[[email protected] nginx]# cd /usr/local/

[[email protected] local]# ls /lib64/ |grep pcre
libpcre.so.0
libpcre.so.0.0.1
[[email protected] local]# ls /lib/ |grep pcre

说明缺失的包在lib64

设置软连接来解决:

[[email protected] local]# ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1
[[email protected] local]# cd nginx
[[email protected] 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

端口被占用,关闭占用端口

时间: 2024-11-04 17:34:31

CentOS6.5安装nginx及负载均衡配置的相关文章

傻瓜式安装nginx以及负载均衡配置

概述 需求 做了一个对内的http api应用.由于只有一台服务器,考虑到升级问题(即升级时会造成几秒钟用户访问不了),决定搭一个nginx,公共端口:9999,部署2套应用,端口:9981,9982.这样我升级时,先升级端口9981端口的应用,待用户可以访问后,再升级9982的应用,达到不中断访问的目的. 流程 搭建 安装依赖包 yum -y install make gcc gcc-c++ ncurses-devel #编译环境 yum -y install zlib zlib-devel

nginx四层负载均衡配置

nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 没安装则进行安装 操作步骤如下 至此 已保证在没中断服务的情况下成功添加stream模块 步骤二 配置 mysql负载均衡案例 修改Nginx配置文件nginx.conf 内容如下图 测试步骤如下 后端Mysql需做好读写分离 创建好相应权限的用户 到客户端连接Nginx创建wuguiyunwei

Nginx+Tomcat负载均衡配置

Tomcat安装:#官方网站下载tomcat 6.0.30或者其他版本: cd /usr/src && tar xzf apache-tomcat-6.0.30.tar.gz #直接解压就可以使用,解压完成执行,同时拷贝两个tomcat,命名为tomcat1 tomcat2 mv apache-tomcat-6.0.30 /usr/local/tomcat1 cp /usr/local/tomcat1 /usr/local/tomcat2 -r #分别修改tomcat1和tomcat2 端

Nginx的负载均衡配置

名词解释,网络搜索结果 正向代理(Forward Proxy): 客户端[用户A]和原始服务器(origin server)[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理. 反向代理(Reverse Proxy): 反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别

Linux记录-Nginx+Tomcat负载均衡配置

Nginx负载均衡配置及策略: 轮询(默认) 优点:实现简单缺点:不考虑每台服务器的处理能力配置示例如下:upstream www.xxx.com {# 需要负载的server列表server www.xxx.com:8080;server www.xxx.com:9080;}权重,使用的较多的策略优点:考虑了每台服务器处理能力的不同,哪台机器性能高就给哪台机器的权重高一些配置示例如下:upstream www.xxx.com {# 需要负载的server列表,weight表示权重,weight

[转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡

原文连接: CENTOS 6.5 配置YUM安装NGINX  http://blog.sina.com.cn/s/blog_69f467b70102uyux.html 本文介绍一下如何用yum源安装Nginx. 第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo: cd /etc/yum.repos.d/ vim nginx.repo 填写如下内容: [nginx] name=nginx repo baseurl=http://nginx.org/packa

Nginx + Tomcat 负载均衡配置详解

Nginx作为反向代理服务器,实现负载均衡.首先浏览器发起请求,到达Nginx,由Nginx将请求地址转发给相应的tomcat服务器,再由tomcat服务器将结果返回给Nginx,Nginx将结果再转发给浏览器. 在这过程中,对于浏览器来说,并不知道后端的存在, 相对于Tomact来说,当前的客户端是Nginx服务器.这就完成了一个代理的过程. 首先准备三台Linux服务器:IP地址分别为 192.168.1.61  192.168.1.62  192.168.1.63 其中61安装nginx服

Windows下安装Nginx及负载均衡

1.下载Windows版本的Nginx http://nginx.org/en/download.html 2.解压Nginx包,配置conf文件下的nginx.conf文件 3.配置说明: #user nobody; #N工作进程数,默认为1 worker_processes 1; #错误日志保存路径 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid

生产环境使用nginx做负载均衡配置的五种策略

nginx的upstream目前支持5种方式的分配1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况. 例如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3.ip_hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后