`

Linux下Nginx负载搭建

阅读更多

1、下载和安装

下载稳定版本,目前是nginx-0.7.64
    http://nginx.net/

 

shell>> cd /tmp
shell>> wget http://sysoev.ru/nginx/nginx-0.7.64.tar.gz
shell>> tar xzvf nginx-0.7.64.tar.gz
shell>> cd nginx-0.7.64

 然后开始编译安装,先配置编译变量:

 

./configure \
    --user=nginx \
    --group=nginx \
    --prefix=/opt/nginx \
    --sbin-path=/usr/sbin/nginx \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --http-client-body-temp-path=/tmp/nginx/client_body \
    --http-proxy-temp-path=/tmp/nginx/proxy \
    --http-fastcgi-temp-path=/tmp/nginx/fastcgi \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/lock/subsys/nginx \
    --with-http_stub_status_module

 解释一下:
# --user            是指启用程序所属用户
# --group           是指启动程序所属组
# --prefix          是指nginx安装目录(不是源代码目录)
# --sbin-path       是指nginx命令位置
# --conf-path       是指配置文件路径
# --error-log-path  是错误日志路径
# --http-log-path   是访问日志

其他是一些临时文件的路径和做linux service需要用到的文件

如果需要监控服务需安装此监控状态模块:

# --with-http_stub_status_module

 

然后make:

shell>> cd /tmp/nginx
shell>> make
shell>> make install

 现在已经可以通过nginx命令来启动了。

 

2、配置服务

但是我们如果想要把nginx做成一个服务,必须要写一个shell.

简单说一下,
# chkconfig:   - 85 15 所有运行级别,启动优先级85, 关闭优先级15
# processname: 进程名称
# config:      nginx配置文件位置
# config:      系统会优先找第一个,如果找不到再去找第二个
# pidfile:     进程ID存放文件,用来存放程序启动后的进程ID

# Source function library.  linux常用的方法库,有兴趣可以去看看service XXX status 就使用了里边的一个方法
# Source networking configuration.  网络配置

 

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#         by haitao.tu at 2009-12-15
#         email:tuhaitao@foxmail.com
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest_q || configtest || return 6
    stop
    start
}

reload() {
    configtest_q || configtest || return 6
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    echo
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

configtest_q() {
    configtest >/dev/null 2>&1
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

# Upgrade the binary with no downtime.
upgrade() {
    local pidfile="/var/run/${prog}.pid"
    local oldbin_pidfile="${pidfile}.oldbin"

    configtest_q || configtest || return 6
    echo -n $"Staring new master $prog: "
    killproc $nginx -USR2
    retval=$?
    echo 
    sleep 1
    if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]];  then
        echo -n $"Graceful shutdown of old $prog: "
        killproc -p ${oldbin_pidfile} -QUIT
        retval=$?
        echo 
        return 0
    else
        echo $"Something bad happened, manual intervention required, maybe restart?"
        return 1
    fi
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    force-reload|upgrade)
        rh_status_q || exit 7
        upgrade
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    status|status_q)
        rh_$1
        ;;
    condrestart|try-restart)
        rh_status_q || exit 7
        restart
            ;;
    *)
        echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart}"
        exit 2
esac

已经做成chkconfig了。

 

3、配置反向代理

配置一下nginx反向代理需要修改/etc/nginx/nginx.conf配置文件

user  nginx;
worker_processes  2;

error_log   /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid         /var/run/nginx.pid;


events {
    use epoll; # 采用epoll,是linux下最快的event
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    #gzip  on;

    #反向代理配置 ,向内网6台jboss转发
    upstream jboss5 {
        server 172.16.201.127:8080 weight=10;
        server 172.16.201.128:8080 weight=10;
        server 172.16.201.129:8080 weight=10;
        server 172.16.201.130:8080 weight=10;
        server 172.16.201.131:8080 weight=10;
        server 172.16.201.132:8080 weight=10;
    }

    server {
        listen       80;
        server_name  localhost;

        location ~ ^/nginx_status/ {
            stub_status on;
            access_log off;
        }

        location / {
            proxy_pass http://jboss5;
        }

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

    }

}
 

 

 

分享到:
评论

相关推荐

    Linux下nginx负载均衡

    linux下的nginx搭建的负载均衡,nginx.conf文件修改成自己对应的地址即可直接使用,将配置复制进windows版本的nginx下应该也可用,这个没有测试,有问题,请联系哦

    Linux搭建Nginx集群步骤+详细配置

    Linux Centos7中搭建Nginx负载均衡,里面包含了详细文档(ps:有详细的操作步骤哟),还有相关的安装包以及测试包

    linux下nginx负载均衡搭建的方法步骤

    本篇文章主要介绍了linux下nginx负载均衡搭建的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Linux下Nginx+Memcached+Tomcat负载均衡集群服务搭建所需jar包

    Linux下Nginx+Memcached+Tomcat负载均衡集群服务搭建所需jar包

    linux搭建lvs虚拟vip实现nginx高可用

    通过linux安装nginx,通过lvs+keeplived实现nginx负载均衡高可用,实现企业级7*24 软件高可用方案。 里面有文档,nginx安装步骤原理图,有图有真相不会你找我

    window下跑nginx轻松实现负载均衡

    原来一直以为nginx只能在Linux下搭建,Windows下其实也可以跑nginx。当你的网站访问量越来越高的时候,一台服务器已经没有办法承受流量压力,那就增加几台 服务器来做负载吧。但当下的硬件设施又是贵得离谱,比如F5,...

    入门级linux,nginx,tomcat,keepalived详细安装教程.zip

    入门级linux,nginx,tomcat,keepalived详细安装教程.zip linux各目录的含义 安装nginx,反向代理负载均衡 linux下运行多个tomcat linux安装keepalived实现HA高可用

    Linux环境傻瓜式nginx+rtmp+ffmpeg套餐安装详解(获取拉流人数)

    本文提供了在Linux环境下使用nginx、rtmp和ffmpeg进行傻瓜式安装的详细教程,旨在帮助读者快速搭建起一个功能强大的流媒体服务器。文章首先介绍了nginx、rtmp和ffmpeg的基本概念及其在流媒体服务中的作用,随后详细...

    Nginx+ftp搭建图片服务器

    nginx和ftp搭建图片服务器 一、需要的组件 图片服务器两个服务: Nginx(图片访问): 1、http服务:可以使用nginx做静态资源服务器。也可以使用apache。推荐使用nginx,效率更高。 2、反向代理 实现 负载均衡 ftp...

    nginx搭建配置详细说明

    8. nginx的负载均衡(自学) 8.1. 什么是负载均衡 8.2. 负载均衡的优点 8.3. 负载均衡的分配策略 8.4. 负载均衡配置 9. 安装PHP 10. PHP-FPM 10.1. 什么是PHP-FPM 10.2. 为什么要是使用PHP-FPM 10.3. 安装...

    window下nginx配置

    原来一直以为nginx只能在Linux下搭建,最近查了些资料才恍然大悟,Windows下其实也可以跑nginx。当你的网站访问量越来越高的时候,一台服务器已经没有办法承受流量压力,后果可想而知,怎么办呢?那就增加几台 ...

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现.pdf

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现.pdf

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现整理.pdf

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现整理.pdf

    CentOS7下安装nginx

    nginx作为一款服务器,在反向代理、...笔者这里的Linux服务器使用的是腾讯云服务器,本人是一名Java程序员也是Linux的初学者有什么不对的地方请多指教,以后还会有更多的关于搭建属于自己的Linux服务器的资源进行分享。

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现[汇编].pdf

    在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现[汇编].pdf

    实战nginx-张宴

    6.3 Nginx负载均衡与反向代理的配置实例 6.4 Nginx负载均衡的HTTP Upstream模块 6.5 Nginx负载均衡服务器的双机高可用 第7章 Nginx的Rewrite规则与实例 7.1 什么是Nginx的Rewrite规则 7.2 Nginx Rewrite规则相关指令...

    nginx在Linux上搭建

    一.Nginx介绍和常用功能 1.Nginx介绍 ‌ Nginx是一个高性能的HTTP和反向代理web服务器(百度百科的介绍) ... 2)负载均衡策略: ‌ 轮询:平均将请求分发给web服务器 ‌ weight:权重 ‌ ip_hash:使同一个ip

    nginx轻量级web服务器搭建

    nginx 是一个轻量级服务器 他可以实现超过6万以上的并发数连接的web服务器 同时也支持PHP JSP 内置有群集模块 可以轻松搭建强大的轻量级web群集系统

    实战Nginx.取代Apache的高性能Web服务器

    6.3 Nginx负载均衡与反向代理的配置实例 6.4 Nginx负载均衡的HTTP Upstream 模块 6.5 Nginx负载均衡服务器的双机高可用 第7章 Nginx的Rewrite规则编写实例 7.1 什么是Nginx的Rewrite规则 7.2 Nginx Rewrite规则...

Global site tag (gtag.js) - Google Analytics