Results 1 to 4 of 4

Thread: Manual Install Nginx with Cpanel Apache in proxy mode

  1. #1
    Administrator GumSlone's Avatar
    Join Date
    Mar 2005
    Location
    Mars, GumCity
    Posts
    1,495
    Thanks
    125
    Thanked 573 Times in 201 Posts
    Blog Entries
    2
    Rep Power
    10

    Default Manual Install Nginx with Cpanel Apache in proxy mode

    this is tutorial from:
    [Only registered and activated users can see links. Click Here To Register...]

    i have added just few small things to it.

    - Run SSH console

    Code:
    cd /usr/src
    wget http://sysoev.ru/nginx/nginx-0.7.63.tar.gz
    wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz
    tar xvzf mod_rpaf-0.6.tar.gz
    cd mod_rpaf-0.6
    /usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
    cd /usr/src
    tar xvzf pcre-7.9.tar.gz
    cd pcre-7.9
    ./configure
    make
    make install
    cd /usr/src
    tar xvzf nginx-0.7.63.tar.gz
    cd nginx-0.7.63
    ./configure --with-http_ssl_module --with-http_realip_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module
    make
    make install
    -Login to WHM and look for the following route:

    Main >> Service Configuration >> Apache Setup > Include Editor > Pre Main Include

    - Add the following configuration and save, LIST_OF_YOUR_IPS changing the IP you occupy in your site:

    Code:
    LoadModule rpaf_module modules/mod_rpaf-2.0.so
    RPAFenable On
    # Enable reverse proxy add forward
    RPAFproxy_ips 127.0.0.1 LIST_OF_YOUR_IPS
    # which ips are forwarding requests to us
    RPAFsethostname On
    # let rpaf update vhost settings
    # allows to have the same hostnames as in the "real"
    # configuration for the forwarding Apache
    RPAFheader X-Real-IP
    # Allows you to change which header mod_rpaf looks
    # for when trying to find the ip the that is forwarding
    # our requests
    go to whm > tweak settings and change the apache port from 80 to 81 (find 0.0.0.0:80 and change it to 0.0.0.0.:81)

    - Run SSH console
    Code:
    /usr/local/cpanel/whostmgr/bin/whostmgr2 --updatetweaksettings
    /scripts/rebuildhttpdconf
    httpd restart
    Code:
    nano nginx.sh
    and add this code to it:
    Code:
    #!/bin/sh
     
    cat > "/usr/local/nginx/conf/nginx.conf" <<EOF
    user  nobody;
    # no need for more workers in the proxy mode
    worker_processes  2;
     
    error_log  logs/error.log info;
     
    worker_rlimit_nofile  8192;
     
    events {
     worker_connections  1024; # you might need to increase this setting for busy servers
     use epoll; #  Linux kernels 2.6.x change to epoll
    }
     
    http {
     server_names_hash_max_size 2048;
     
     include    mime.types;
     default_type  application/octet-stream;
     
     sendfile on;
     tcp_nopush on;
     tcp_nodelay on;
     
     keepalive_timeout  10;
     
     gzip on;
     gzip_min_length  1100;
     gzip_buffers  4 32k;
     gzip_types    text/plain application/x-javascript text/xml text/css;
     ignore_invalid_headers on;
     
     client_header_timeout  3m;
     client_body_timeout 3m;
     send_timeout     3m;
     connection_pool_size  256;
     client_header_buffer_size 4k;
     large_client_header_buffers 4 32k;
     request_pool_size  4k;
     output_buffers   4 32k;
     postpone_output  1460;
     
     include "/usr/local/nginx/conf/vhost.conf";
    }
     
    EOF
     
    /bin/cp /dev/null /usr/local/nginx/conf/vhost.conf
     
    cd /var/cpanel/users
    for USER in *; do
     for DOMAIN in `cat $USER | grep ^DNS | cut -d= -f2`; do
      IP=`cat $USER|grep ^IP|cut -d= -f2`;
      ROOT=`grep ^$USER: /etc/passwd|cut -d: -f6`;
      echo "Converting $DOMAIN for $USER";
     
      cat >> "/usr/local/nginx/conf/vhost.conf" <<EOF
       server {
      access_log off;
     
      error_log  logs/vhost-error_log warn;
      listen    80;
      server_name  $DOMAIN www.$DOMAIN;
    
      location ~* \.(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ {
       root   $ROOT/public_html;
      }
     
      location / {
       client_max_body_size    10m;
       client_body_buffer_size 128k;
     
       proxy_send_timeout   90;
       proxy_read_timeout   90;
     
       proxy_buffer_size    4k;
       # you can increase proxy_buffers here to suppress "an upstream response
       #  is buffered to a temporary file" warning
       proxy_buffers     16 32k;
       proxy_busy_buffers_size 64k;
       proxy_temp_file_write_size 64k;
     
       proxy_connect_timeout 30s;
     
       proxy_redirect  http://www.$DOMAIN:81   http://www.$DOMAIN;
       proxy_redirect  http://$DOMAIN:81   http://$DOMAIN;
     
       proxy_pass   http://$IP:81/;
     
       proxy_set_header   Host   \$host;
       proxy_set_header   X-Real-IP  \$remote_addr;
       proxy_set_header   X-Forwarded-For \$proxy_add_x_forwarded_for;
      }
     }
    EOF
     done
    done
    - save the file and chmod and run it:
    Code:
    chmod 755 nginx.sh
    ./nginx.sh
    -Check the configuration
    Code:
    /usr/local/nginx/sbin/nginx -t
    -Start nginx
    Code:
    /usr/local/nginx/sbin/nginx
    - create init script [Only registered and activated users can see links. Click Here To Register...]
    Code:
    nano /etc/init.d/nginx
    put this code into the file
    Code:
    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemin
    # Taken from http://www.hikaro.com
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /usr/local/nginx/conf/nginx.conf
    # pidfile:     /usr/local/nginx/logs/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/local/nginx/sbin/nginx"
    prog=$(basename $nginx)
     
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
     
    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 -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
     
    restart() {
        configtest || return $?
        stop
        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
    save the code and execute
    Code:
    chmod +x /etc/init.d/nginx
    make it start when the server run
    Code:
    /sbin/chkconfig nginx on
    to check it
    Code:
    /sbin/chkconfig --list nginx
    check the function if it works

    Code:
    service nginx start
    service nginx stop
    service nginx restart
    service nginx reload
    service nginx configtest
    service nginx status
    Done!
    Advertise your mobile site for FREE with [Only registered and activated users can see links. Click Here To Register...]

    [Only registered and activated users can see links. Click Here To Register...]


  2. The Following User Says Thank You to GumSlone For This Useful Post:

    viciovirtual (06-06-10)

  3. #2
    Junior Member
    Join Date
    Dec 2009
    Posts
    1
    Thanks
    1
    Thanked 0 Times in 0 Posts
    Rep Power
    0

    Default

    Hi, i only have some questions:

    1. The htaccess´s files of the websites dont go to stop work?
    2. in the line:

    Code:
     worker_connections  1024;
    what number could be a good number for a server with sites with more than 1,000 users online.

    3. In the line:

    Code:
    # Enable reverse proxy add forward
    RPAFproxy_ips 127.0.0.1 LIST_OF_YOUR_IPS
    i only have to put the principal ip where i install cpanel orthe aditional ips too?

    i hope help me with this for install, and thanks for this great tutorial

  4. #3
    Administrator GumSlone's Avatar
    Join Date
    Mar 2005
    Location
    Mars, GumCity
    Posts
    1,495
    Thanks
    125
    Thanked 573 Times in 201 Posts
    Blog Entries
    2
    Rep Power
    10

    Default

    Quote Originally Posted by viciovirtual [Only registered and activated users can see links. Click Here To Register...]
    Hi, i only have some questions:

    1. The htaccess´s files of the websites dont go to stop work?
    2. in the line:

    Code:
     worker_connections  1024;
    what number could be a good number for a server with sites with more than 1,000 users online.

    3. In the line:

    Code:
    # Enable reverse proxy add forward
    RPAFproxy_ips 127.0.0.1 LIST_OF_YOUR_IPS
    i only have to put the principal ip where i install cpanel orthe aditional ips too?

    i hope help me with this for install, and thanks for this great tutorial
    1. htaccess works for me.
    2. the worker connection is number of requests not the users, one page could have about 15 images it means 15 requests/connections per user.

    3. you have to pull full list of your servers ips
    Advertise your mobile site for FREE with [Only registered and activated users can see links. Click Here To Register...]

    [Only registered and activated users can see links. Click Here To Register...]


  5. #4
    Member
    Join Date
    Apr 2011
    Posts
    32
    Thanks
    9
    Thanked 1 Time in 1 Post
    Rep Power
    0

    Default

    is it better than normal apache & normal nignx?
    will it make website faster ?
    will it reduce server load ?
    Last edited by bivaswap; 23-12-12 at 07:36.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 0
    Last Post: 08-01-10, 04:20
  2. vbulletin fix for apache + nginx
    By GumSlone in forum Coding Forum
    Replies: 5
    Last Post: 05-09-09, 23:51
  3. Manual Lavaliar Chat
    By rukiya in forum Coding Forum
    Replies: 7
    Last Post: 05-04-08, 21:43
  4. Proxy Error 502
    By naveen-PHP LEARNER in forum Coding Forum
    Replies: 1
    Last Post: 21-08-06, 20:55

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

SEO by vBSEO

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19