Hello,
Today am sharing imanual nstallation of nginx in cpanel servers as proxy.
First of all we have to install a apache module know as mod_rpaf
here is command:
Then login to whm as root
and go to
and put the following code
Note: in above code replace (place your ips here without the brakets) with the list of IP addresses on your Cpanel server
Now Go to your 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)
then run following command
Check your “/usr/local/apache/conf/httpd.conf†for any occurrences of port 80,
Find for port 80 if you found any occurrences of port 80 then rebuild your apache configuration file by running
and restart apache
Now install pcre library
And now install nginx
Create nginx.sh file
and put code
Save the file and change the permision and then run :
Test nginx configuration
if you get error like invalid event type “rtsig†when you run this commmand: # /usr/local/nginx/sbin/nginx -t
To fix this error you should do this: nano /usr/local/nginx/conf/nginx.conf
Find line 11 and change “rtsig†to “epollâ€
Restart Nginx
create init script
and put code
Save file by pressing ctrl+x
Run this
make it start when the server run by command
Now run following command one by one
To Create an automatic virtualhost entry in nginx virtualhost configuration (/usr/local/nginx/conf/vhost.conf) when cPanel account get created on the server follow the below instructions:
and put the code
and run
To remove virtualhost entry from nginx virtualhost configuration (/usr/local/nginx/conf/vhost.conf) when cPanel account get terminated from the server follow the below instructions:
and put the code
and run
Today am sharing imanual nstallation of nginx in cpanel servers as proxy.
First of all we have to install a apache module know as mod_rpaf
here is command:
Code:
cd /usr/local/src wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.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
and go to
Code:
Service Configuration >> Apache Configuration > Include Editor > Pre Main Include and Select the apache version that is running on your cPanel server
Code:
LoadModule rpaf_module modules/mod_rpaf-2.0.so RPAFenable On # Enable reverse proxy add forward RPAFproxy_ips 127.0.0.1 (place all your ips here without the brakets) RPAFsethostname On # let rpaf update vhost settings allowing to have # the same hostnames as in the “actual†configuration for the # forwarding apache installation RPAFheader X-Real-IP # Allows you to change which header we have mod_rpaf looking for # when trying to find the ip the that is forwarding our requests
Now Go to your 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)
then run following command
Code:
/usr/local/cpanel/whostmgr/bin/whostmgr2 –updatetweaksettings
Code:
vi /usr/local/apache/conf/httpd.conf
Code:
/scripts/rebuildhttpdconf and make sure your httpd.conf file is up to date
Code:
/etc/init.d/httpd restart
Code:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.9.tar.gz tar xvzf pcre-7.9.tar.gz cd pcre-7.9 ./configure make make install
Code:
wget http://sysoev.ru/nginx/nginx-0.7.63.tar.gz tar xvzf nginx-0.7.63.tar.gz cd nginx-0.7.63 ./configure make make install
Code:
nano nginx.sh
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 change the permision and then run :
Code:
chmod 755 nginx.sh sh nginx.sh
Code:
/usr/local/nginx/sbin/nginx -t
To fix this error you should do this: nano /usr/local/nginx/conf/nginx.conf
Find line 11 and change “rtsig†to “epollâ€
Restart Nginx
Code:
/usr/local/nginx/sbin/nginx
Code:
nano /etc/init.d/nginx
Code:
#!/bin/sh # # nginx – this script starts and stops the nginx daemin # Taken from [url=http://www.hikaro.com]HIKARO | Just another WordPress site[/url] # 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
Run this
Code:
chmod +x /etc/init.d/nginx
Code:
/sbin/chkconfig nginx on
Code:
service nginx start service nginx stop service nginx restart service nginx reload service nginx configtest service nginx status
To Create an automatic virtualhost entry in nginx virtualhost configuration (/usr/local/nginx/conf/vhost.conf) when cPanel account get created on the server follow the below instructions:
Code:
nano /scripts/postwkillacct
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
and run
Code:
chmod 755 /scripts/postwkillacct
To remove virtualhost entry from nginx virtualhost configuration (/usr/local/nginx/conf/vhost.conf) when cPanel account get terminated from the server follow the below instructions:
Code:
nano /scripts/postwkillacct
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
and run
Code:
chmod 755 /scripts/postwkillacct
Comment