nginx编译安装与apache动静分离共存设置及负载均衡设置

nginx对于静态文件强大的响应能力一定程度上弥补了apache环境的不足,使用nginx做反向代理,一部分为了提高静态文件的相应能力,另外可以使用nginx做负载均衡来搭2至3台的apache服务器,这样在相当长的时间段内解决了初建团队的业务蓬勃发展所遇到的服务器资源问题.

1,安装依赖.

yum -y install wget zip unzip zlib zlib-devel pcre pcre-devel  pcre* openssl openssl-devel perl perl-devel  perl-ExtUtils-Embed.

2,下载源码包

wget http://nginx.org/download/nginx-1.6.1.tar.gz

3,  解压

tar -zxvf nginx-1.6.1.tar.gz

cd nginx-1.6.1/

4,建立必须目录

  mkdir /var/tmp/nginx/ /var/log/nginx/ /var/run/nginx/

5,编译安装

  ./configure    --prefix=/usr   --sbin-path=/usr/sbin/nginx   --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx/error.log   --pid-path=/var/run/nginx.pid    --lock-path=/var/lock/nginx.lock     --http-log-path=/var/log/nginx/access.log   --http-client-body-temp-path=/var/tmp/nginx/client/   --http-proxy-temp-path=/var/tmp/nginx/proxy/   --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/   --with-http_ssl_module   --with-http_flv_module   --with-http_gzip_static_module --with-http_realip_module  --with-http_stub_status_module   --with-http_addition_module --with-http_sub_module  --with-http_dav_module  --with-http_perl_module  --with-ld-opt="-Wl,-E"  --with-mail

  make &&  make install

6,为nginx建立用户

  /usr/sbin/useradd -c "Nginx user" -s /bin/false -r -d /var/lib/nginx nginx

7,建立启动脚本

  vi /etc/init.d/nginx

  输入以下内容:

  

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# 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 

make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=([^ ]*).*/1/g‘ -`
   options=`$nginx -V 2>&1 | grep ‘configure arguments:‘`
   for opt in $options; do
       if [ `echo $opt | grep ‘.*-temp-path‘` ]; then
           value=`echo $opt | cut -d "=" -f 2`
           if [ ! -d "$value" ]; then
               # echo "creating" $value
               mkdir -p $value && chown -R $user $value
           fi
       fi
   done
} 

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    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 -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
} 

restart() {
    configtest || return $?
    stop
    sleep 1
    start
} 

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
} 

force_reload() {
    restart
} 

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

rh_status() {
    status $prog
} 

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

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

8,设置权限

  chmod 755 /etc/init.d/nginx

9,增加到系统服务

  chkconfig --add nginx

  以后的操作可以使用centos7的systemctl工具了

  systemctl start nginx

  systemctl stop nginx

  systemctl restart nginx

10,设置nginx和apache的动静分离

  编辑apache的配置文件,将Listen改为88端口

  vi /etc/nginx/nginx.conf 在第一个server配置中增加以下行

  

  location / {
            root   /var/www/html;#apache的网站根目录
            index  index.php index.html index.htm;
        }

          #将php文件请求分发给后端的apache
        location ~ \.php$ {
                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://127.0.0.1:88;
        }
          #将图像和静态文件由nginx处理
        location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
                root /var/www/html;
                expires 15d;
        }
           #将js文件由nginx处理
        location ~ \.(js|css)$ {
                expires 1h;
        }

11,配置Nginx负载均衡

  vi /etc/nginx/nginx.conf在http节点里添加:

  

http
{
      include       mime.types;
      default_type  application/octet-stream;

      keepalive_timeout 120;

      tcp_nodelay on;

      upstream server1  {
              server   192.168.1.2:80;
              server   192.168.1.3:80;
              server   192.168.1.4:80;
              server   192.168.1.5:80;
      }

      upstream  server2  {
              server   192.168.1.7:8080;
              server   192.168.1.7:8081;
              server   192.168.1.7:8082;
      }

      server
      {
              listen  80;
              server_name server1;

              location / {
                       proxy_pass        http://www.zyan.cc;
                       proxy_set_header   Host             $host;
                       proxy_set_header   X-Real-IP        $remote_addr;
                       proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
              }

      }

      server
      {
              listen  80;
              server_name server2;

              location / {
                       proxy_pass        http://blog.zyan.cc;
                       proxy_set_header   Host             $host;
                       proxy_set_header   X-Real-IP        $remote_addr;
                       proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
              }

      }

另外:如果编译nginx有错误的时候

    

       the HTTP rewrite module requires the PCRE library.//安装pcre

the HTTP gzip module requires the zlib library//安装zlib

make[1]: *** [/usr/local/pcre/Makefile] Error 127//–with-pcre=DIR指向源码包,而不是安装后包,

时间: 2024-10-01 03:38:05

nginx编译安装与apache动静分离共存设置及负载均衡设置的相关文章

nginx的防盗链,动静分离,缓存,负载均衡,反向代理

1.防盗链有两种实现方式 第一种采用了URL重写模块 location ~.*\.(jpg|gif|png)$ {        valid_referers none blocked *.demo.com demo.com 192.168.1.175;        if ( $invalid_referer ) {                #rewrite ^/ 错误跳转链接;                return 403;        } } 解析:判断文件是jpg,gif,

Nginx作为动静分离、缓存与负载均衡初探

一.概述: 我之前有一篇文章写了Nginx作为web服务器的http与https的初探作为nginx基础介绍,作为web服务器使用;今天要介绍的是nginx作为代理服务器和负载均衡服务器的入门介绍;实现内容:通过nginx代理后端phpadmin网站,并通过nginx的代理达到动静内容分离; 实验环境:proxy:Centos7 模拟外网ip:172.16.3.152 内网Lan ip:192.168.56.254后端静态节点n1.pkey.cn:CentOS7 内网Lan ip:192.168

nginx 防盗链+动静分离+反向代理+缓存+负载均衡

修改nginx/conf/nginx.conf,修改完后如下: user www www; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default

nginx 防盗链+动静分离+反向代理+缓存+负载均衡 (转发)

修改nginx/conf/nginx.conf,修改完后如下: [php] view plaincopyprint? user  www www; worker_processes  1; #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid; events { worker_connections 

haproxy的web服务负载均衡、动静分离、 MySQL服务负载均衡、状态监控

实验环境:基于centos6.6 haproxy-Server:172.16.249.98  hostname:node1 upsteram server1:172.16.249.100 hostname:node2 upstream server2:172.16.249.99  hostname:node3 web服务的负载均衡以及状态监控: 设置记录haproxy日志的文件位置: node1: #vim /etc/rsyslog.conf (1)启用UDP: # Provides UDP s

Nginx+Apache动静分离部署

Nginx+Apache动静分离部署 为什么需要部署Nginx+Apache动静分离? ? 之前在讲解基于LNMP架构的Discuz论坛搭建(原文链接:https://blog.51cto.com/14557673/2461480)的时候对动静分离有所提及,这边简述一下核心原因: ? 根据Nginx服务的特性,其擅长处理静态网站(图片文字视频等文件)访问资源,而Apache擅长动态处理(例如:账号注册的交互). ? 因此我们可以结合这两个服务特点与优势,部署实现网站服务的动静分离. 部署Ngin

部署Nginx+Apache动静分离

Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP-FPM模块或Apache处理在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式反向代理原理Nginx不仅能作为Web服务器,还具有反向代理.负载均衡和缓存的功能Nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的N

部署Nginx+Apache动静分离(实战!可跟做!)

Nginx动静分离介绍 1.Nginx的静态处理能力很强,但是动态处理不足,因此,在企业中常用动静分离技术 2.针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP+FPM模块或Apache处理 3.在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式 反向代理原理 1.Nginx不仅能作为Web服务器,还具有反向代理.负载均衡和缓存的功能2.Nginx通过proxy模块实现将客户端的请求代理至,上游服务器,此时nginx与.上游服务器的

Nginx与Apache动静分离

. Nginx与Apache动静分离,布布扣,bubuko.com