nginx 컴 파일 설치 와 apache 동정 분리 공존 설정 및 부하 균형 설정

16265 단어 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
앞으로 의 작업 은 centos 7 의 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 컴 파일 에 오류 가 있 을 때
    
HTTP 재 작성 모듈 에는 PCRE 라 이브 러 리 가 필요 합 니 다. / / pcre 설치
                    HTTP gzip 모듈 에는 zlib 라 이브 러 리 / / 설치 zlib 가 필요 합 니 다.
                    make[1]: *** [/usr/local/pcre/Makefile] Error 127//
– with - pcr = DIR 은 설치 후 패키지 가 아 닌 원본 패 키 지 를 가리 키 며,

좋은 웹페이지 즐겨찾기