Quest 1 – Secure, Lightning Fast, CentOS 7.3 Virtualmin VPS, Apache2+MariaDB+Multiple PHP Versions+OpCache+NGINX+Varnish+Redis – 25,000 Concurrent Goal – Part 27 – Apache2 MPM_EVENT + MOD_PageSpeed + NGINX Install from Source + Mods

High Performance Cloud Web Servers – My Quest for The Perfect Budget Lightning Fast Power-housed Cloud Linux Configuration – Part 27 – APACHE2 MPM_EVENT + MOD_PAGESPEED + NGINX INSTALL FROM SOURCE + MODS

banner

APACHE2 – ENABLING MPM_EVENT

Let’s start off by switching to su root bash on server-1:

[root@server-1]

Backup /etc/httpd/conf/httpd.conf

[root@server-1] cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bkup6

Nano /etc/httpd/conf/httpd.conf

[root@server-1] nano -c /etc/httpd/conf/httpd.conf

Add the following code to the bottom of the httpd.conf file:

<IfModule mpm_prefork_module>
php_value session.save_handler “files”
php_value session.save_path “/var/lib/php/session”
</IfModule>

CNTRL + W (Searches in Nano):

and type “php_value” , then hit enter. You can re-peat this process until the whole document has been checked by repeating the command.

We want to either delete the php_value entries or null the line with a comment #hash.

Do this several times until all php_value is #php_value … or removed from our configuration file.

The only php_value should be at the very bottom of the file within our mpm_prefork)

If you don’t do this, when we disable prefork and enable mpm_event, apache2 won’t restart and return errors until this is done.

Backup /etc/httpd/conf.modules.d/00-mpm.conf

[root@server-1] cp /etc/httpd/conf.modules.d/00-mpm.conf /etc/httpd/conf.modules.d/00-mpm.conf.bkup

Go to Line 6:

Was:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Now:

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Go to Line 18:

Was:

#LoadModule mpm_event_module modules/mod_mpm_event.so

Now:

LoadModule mpm_event_module modules/mod_mpm_event.so

CNTRL + X , “Y” to save changes and ENTER to return to bash:

[root@server-1]

Restart Apache2 with MPM_EVENTS enabled:

[root@server-1] systemctl restart httpd.service

All should be smooth!

APACHE2 – Mod-PageSpeed – Installation & Enabling

Change directories to /tmp/:

[root@server-1] cd /tmp/

Download Latest Mod-PageSpeed:

[root@server-1] wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm

Install at:

[root@server-1] yum install at

Select “Y” to install all the marked packages for installation

Complete!

[root@server-1]

Install Mod-Pagespeed RPM file:

[root@server-1] rpm -U mod-pagespeed-*.rpm

You might get a similar output as I did:

warning: mod-pagespeed-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID xxxxxxxx: NOKEY
Redirecting to /bin/systemctl start  atd.service
job 1 at Fri Mar  3 16:15:00 2017

Backup /etc/httpd/conf.d/pagespeed.conf:

[root@server-1] cp /etc/httpd/conf.d/pagespeed.conf /etc/httpd/conf.d/pagespeed.conf.bkup1

Nano /etc/httpd/conf.d/pagespeed.conf:

[root@server-1] nano -c /etc/httpd/conf.d/pagespeed.conf

Go to Line 37:

Was:

    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html

Now:

#    AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html

CNTRL + X , “Y” to save all changes, and ENTER to return to bash:

[root@server-1]

Restart Apache2 with Mod-Pagespeed Enabled:

[root@server-1] systemctl restart httpd.service

NGINX – INSTALLATION FROM SOURCE + ROBOO + CUSTOM DAEMON USER

su root on server-1 in bash:

Let’s Install some packages:

[root@server-1] yum install gperf libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools-devel

Select “Y” to install all marked packages for installation.

Complete!

We need to create a custom username for the NGINX process daemon:

For the purpose of this blog, we will be using the following username for our nginx.service build:

Default:

user = nobody

group = nobody

Custom:

user = rproxyu

group = rproxyu

Let’s create our new user in su root bash:

[root@server-1] useradd rproxyu

[root@server-1] usermod -s /sbin/nologin rproxyu

Let’s set a complicated password of 38+ characters for our new NGINX Daemon user “rproxyu” in group “rproxyu”:

[root@server-1] passwd rproxyu

Changing password for user rproxyu.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

[root@server-1]

Create nginx directory structure:

[root@server-1] mkdir -p /etc/nginx/modules

Change directories:

[root@server-1] cd /etc/nginx/modules

Download NGINX Module “ngx_pagespeed”:

[root@server-1] wget https://github.com/pagespeed/ngx_pagespeed/archive/latest-stable.tar.gz

Extract NGINX Module “ngx_pagespeed”:

[root@server-1] tar -xzvf latest-stable.tar.gz

Rename Extracted Directory:

[root@server-1] mv ngx_pagespeed-latest-stable ngx_pagespeed

Change Directory:

[root@server-1] cd ngx_pagespeed

Download PSOL Library Files that are required for Ngx_Pagespeed to function properly:

[root@server-1] wget https://dl.google.com/dl/page-speed/psol/1.9.32.2.tar.gz

Extract PSOL Library Files:

[root@server-1] tar -xzvf 1.9.32.2.tar.gz

Change Directory:

[root@server-1] cd /etc/nginx/modules

Download Roboo – HTTP Robot Mitigator:

[root@server-1] wget https://github.com/yuri-gushin/Roboo/archive/master.zip

Extract Roboo – HTTP Robot Mitigator:

[root@server-1] unzip master.zip

Rename Directory:

[root@server-1] mv Roboo-master ngx_roboo

Change Directory:

[root@server-1] cd /etc/nginx

Download NGINX Latest, currently “nginx-1.11.10.tar.gz”:

[root@server-1] wget http://nginx.org/download/nginx-1.11.10.tar.gz

Extract NGINX “nginx-1.11.10.tar.gz”:

[root@server-1] tar -xzvf nginx-1.11.10.tar.gz

Change Directory:

[root@server-1] cd nginx-1.11.10

Let’s install some Roboo Perl Requirements:

[root@server-1] yum install cpan

Select “Y” to install all packages marked for installation.

Drop down to the cpan shell  so that we can install PERL Modules used by Roboo HTTP Robot Mitigator … by configuring it:

[root@server-1] cpan

You will be prompted to configure it automatically. I went ahead and chose yes, and when it gave me the choice to do sudo, manual, etc. I chose sudo and then default settings until I came to the following screen:

cpan[1]> install CPAN

After cpan[1] finishes installing, proceed to the next:

cpan[2]> reload cpan

After cpan[2] finishes reloading, proceed to the next:

cpan[3]> install Net::IP::Match::Regexp

After cpan[3] finishes installing, proceed to the next:

cpan[4]> install Compress::Zlib

After cpan[4] finishes installing, proceed to the next:

cpan[5]> install Digest::SHA

After cpan[5] finishes installing, proceed to the next:

cpan[6]> install Crypt::Random

We will be prompted to do this automatically, select “Y” and ENTER. This one takes a while to install.

Exit PERL CPAN Shell:

cpan[7]> exit

Terminal does not support GetHistory.

Lockfile removed.

[root@server-1]

Let’s copy Roboo.pm to the appropriate NGINX location:

[root@server-1] cp /etc/nginx/modules/ngx_roboo/Roboo.pm /opt/local/share/nginx/Roboo.pm

If you get an error that it doesn’t exist. Run this command.

[root@server-1] mkdir -p /opt/local/share/nginx

Then repeat the copy.

 

Let’s install NGINX from Source:

[root@server-1] cd /etc/nginx/nginx-1.11.10

Let’s run ./configure script with the specified parameters:

[root@server-1] ./configure –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 –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=rproxyu –group=rproxyu –with-http_perl_module –with-http_gzip_static_module –with-http_gunzip_module –with-http_geoip_module –with-http_ssl_module

You will get an output like the following:

checking for perl
+ perl version: This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
+ perl interpreter multiplicity found
checking for GeoIP library … found
checking for GeoIP IPv6 support … found
creating objs/Makefile

Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ using system zlib library

nginx path prefix: “/usr/local/nginx”
nginx binary file: “/usr/sbin/nginx”
nginx modules path: “/usr/local/nginx/modules”
nginx configuration prefix: “/etc/nginx”
nginx configuration file: “/etc/nginx/nginx.conf”
nginx pid file: “/var/run/nginx.pid”
nginx error log file: “/var/log/nginx/error.log”
nginx http access log file: “/var/log/nginx/access.log”
nginx http client request body temporary files: “/var/cache/nginx/client_temp”
nginx http proxy temporary files: “/var/cache/nginx/proxy_temp”
nginx http fastcgi temporary files: “/var/cache/nginx/fastcgi_temp”
nginx http uwsgi temporary files: “uwsgi_temp”
nginx http scgi temporary files: “/var/cache/nginx/scgi_temp”

Let’s make our build:

[root@server-1] make

You will get an output like the following:

objs/ngx_modules.o \
-ldl -lpthread -lcrypt -lpcre -lssl -lcrypto -ldl -lz -lGeoIP \
-Wl,–enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE -fstack-protector -L/usr/lib64/perl5/CORE -lperl -lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc \
-Wl,-E
sed -e “s|%%PREFIX%%|/usr/local/nginx|” \
-e “s|%%PID_PATH%%|/var/run/nginx.pid|” \
-e “s|%%CONF_PATH%%|/etc/nginx/nginx.conf|” \
-e “s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|” \
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/etc/nginx/nginx-1.11.10′

Let’s make our build’s installation:

[root@server-1] make install

You will get an output like the following:

make -f objs/Makefile install
make[1]: Entering directory `/etc/nginx/nginx-1.11.10′
cd objs/src/http/modules/perl && make install
make[2]: Entering directory `/etc/nginx/nginx-1.11.10/objs/src/http/modules/perl’
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/local/lib64/perl5/auto/nginx/nginx.so
Installing /usr/local/lib64/perl5/auto/nginx/nginx.bs
Installing /usr/local/lib64/perl5/nginx.pm
Installing /usr/local/share/man/man3/nginx.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
make[2]: Leaving directory `/etc/nginx/nginx-1.11.10/objs/src/http/modules/perl’
test -d ‘/usr/local/nginx’ || mkdir -p ‘/usr/local/nginx’
test -d ‘/usr/sbin’ \
|| mkdir -p ‘/usr/sbin’
test ! -f ‘/usr/sbin/nginx’ \
|| mv ‘/usr/sbin/nginx’ \
‘/usr/sbin/nginx.old’
cp objs/nginx ‘/usr/sbin/nginx’
test -d ‘/etc/nginx’ \
|| mkdir -p ‘/etc/nginx’
cp conf/koi-win ‘/etc/nginx’
cp conf/koi-utf ‘/etc/nginx’
cp conf/win-utf ‘/etc/nginx’
test -f ‘/etc/nginx/mime.types’ \
|| cp conf/mime.types ‘/etc/nginx’
cp conf/mime.types ‘/etc/nginx/mime.types.default’
test -f ‘/etc/nginx/fastcgi_params’ \
|| cp conf/fastcgi_params ‘/etc/nginx’
cp conf/fastcgi_params \
‘/etc/nginx/fastcgi_params.default’
test -f ‘/etc/nginx/fastcgi.conf’ \
|| cp conf/fastcgi.conf ‘/etc/nginx’
cp conf/fastcgi.conf ‘/etc/nginx/fastcgi.conf.default’
test -f ‘/etc/nginx/uwsgi_params’ \
|| cp conf/uwsgi_params ‘/etc/nginx’
cp conf/uwsgi_params \
‘/etc/nginx/uwsgi_params.default’
test -f ‘/etc/nginx/scgi_params’ \
|| cp conf/scgi_params ‘/etc/nginx’
cp conf/scgi_params \
‘/etc/nginx/scgi_params.default’
test -f ‘/etc/nginx/nginx.conf’ \
|| cp conf/nginx.conf ‘/etc/nginx/nginx.conf’
cp conf/nginx.conf ‘/etc/nginx/nginx.conf.default’
test -d ‘/var/run’ \
|| mkdir -p ‘/var/run’
test -d ‘/var/log/nginx’ \
|| mkdir -p ‘/var/log/nginx’
test -d ‘/usr/local/nginx/html’ \
|| cp -R html ‘/usr/local/nginx’
test -d ‘/var/log/nginx’ \
|| mkdir -p ‘/var/log/nginx’
make[1]: Leaving directory `/etc/nginx/nginx-1.11.10′

nano -c /etc/init.d/nginx:

[root@server-1] nano -c /etc/init.d/nginx

Paste the following into this file, then CNTRL + X , then “Y” ENTER to save changes and return to bash:

#!/bin/sh
#
# nginx        Startup script for nginx
#
# chkconfig: - 85 15
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# description: nginx is an HTTP and reverse proxy server
#
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop nginx
### END INIT INFO

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

if [ -L $0 ]; then
    initscript=`/bin/readlink -f $0`
else
    initscript=$0
fi

sysconfig=`/bin/basename $initscript`

if [ -f /etc/sysconfig/$sysconfig ]; then
    . /etc/sysconfig/$sysconfig
fi

nginx=${NGINX-/usr/sbin/nginx}
prog=`/bin/basename $nginx`
conffile=${CONFFILE-/etc/nginx/nginx.conf}
lockfile=${LOCKFILE-/var/lock/subsys/nginx}
pidfile=${PIDFILE-/var/run/nginx.pid}
SLEEPMSEC=${SLEEPMSEC-200000}
UPGRADEWAITLOOPS=${UPGRADEWAITLOOPS-5}
RETVAL=0

start() {
    echo -n $"Starting $prog: "

    daemon --pidfile=${pidfile} ${nginx} -c ${conffile}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && touch ${lockfile}
    return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc -p ${pidfile} ${prog}
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}

reload() {
    echo -n $"Reloading $prog: "
    killproc -p ${pidfile} ${prog} -HUP
    RETVAL=$?
    echo
}

upgrade() {
    oldbinpidfile=${pidfile}.oldbin

    configtest -q || return
    echo -n $"Starting new master $prog: "
    killproc -p ${pidfile} ${prog} -USR2
    echo

    for i in `/usr/bin/seq $UPGRADEWAITLOOPS`; do
        /bin/usleep $SLEEPMSEC
        if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then
            echo -n $"Graceful shutdown of old $prog: "
            killproc -p ${oldbinpidfile} ${prog} -QUIT
            RETVAL=$?
            echo
            return
        fi
    done

    echo $"Upgrade failed!"
    RETVAL=1
}

configtest() {
    if [ "$#" -ne 0 ] ; then
        case "$1" in
            -q)
                FLAG=$1
                ;;
            *)
                ;;
        esac
        shift
    fi
    ${nginx} -t -c ${conffile} $FLAG
    RETVAL=$?
    return $RETVAL
}


rh_status() {
    status -p ${pidfile} ${nginx}
}

# See how we were called.
case "$1" in
    start)
        rh_status >/dev/null 2>&1 && exit 0
        start
        ;;
    stop)
        stop
        ;;
    status)
        rh_status
        RETVAL=$?
        ;;
    restart)
        configtest -q || exit $RETVAL
        stop
        start
        ;;
    upgrade)
        rh_status >/dev/null 2>&1 || exit 0
        upgrade
        ;;
    condrestart|try-restart)
        if rh_status >/dev/null 2>&1; then
            stop
            start
        fi
        ;;
    force-reload|reload)
        reload
        ;;
    configtest)
        configtest
        ;;
    *)
        echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"
        RETVAL=2
esac

exit $RETVAL
t|force-reload|upgrade|reload|status|help|configtest}"
        RETVAL=2

Chmod 0755 /etc/init.d/nginx:

[root@server-1] chmod 0755 /etc/init.d/nginx

Chown root:root /etc/init.d/nginx:

[root@server-1] chown root:root /etc/init.d/nginx

Roboo HTTP Robot Mitigator enabled NGINX Default Conf:

user rproxyu rproxyu;
worker_processes 2;
worker_rlimit_nofile 8000;

events {
worker_connections 8192;
}

http {
perl_modules /opt/local/share/nginx;
perl_require Roboo.pm;

include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” $status $bytes_sent “$http_referer” “$http_user_agent” “$gzip_ratio”‘;

client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;

connection_pool_size 256;
client_header_buffer_size 1k;
client_body_buffer_size 16k;
large_client_header_buffers 4 16k;
request_pool_size 4k;

gzip off;
gzip_min_length 0;
gzip_buffers 4 8k;
gzip_types text/plain application/x-shockwave-flash text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_proxied any;
gzip_http_version 1.0;
output_buffers 1 32k;
postpone_output 1460;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 75 20;

ignore_invalid_headers on;

server_tokens off;
proxy_cache_path /opt/local/share/nginx/cache levels=1:2 keys_zone=cache:10m inactive=10m max_size=1000m;
server {
listen 8080;
server_name _;

access_log /dev/null;

location / {
perl Roboo::handler;
set $Roboo_challenge_modes “SWF,gzip”; # SWF or JS, optionally gzip for encoding (“JS,gzip” or “SWF,gzip”)

# Defaults
#set $Roboo_cookie_name “Anti-Robot”; # Cookie name used for challenge/response
#set $Roboo_validity_window 600; # Authentication validity time window
#set $Roboo_whitelist “IP(),UA(”),URI(”)”; # Whitelist – IP addresses (CIDR), user-agents or URIs (PCRE)
#set $Roboo_charset “UTF-8”; # Charset used during challenge (for proper POST resubmissions)
#set $Roboo_challenge_hash_input $remote_addr; # Advanced – challenge hash basis, can add $server_name$server_port$http_host$http_user_agent

error_page 555 = @proxy;
expires epoch;
add_header Last-Modified “”;
if ($Roboo_challenge_modes ~ gzip) {
gzip on;
}
access_log /var/log/nginx/challenged.log;
}

location @proxy {
proxy_pass http://example.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_cache cache;
proxy_cache_valid 5m;
gzip on;
access_log /var/log/nginx/verified.log;
}
}
}

Create Directory:

[root@server-1] mkdir -p /var/cache/nginx/client_temp

Start NGINX:

[root@server-1] systemctl start nginx.service

Start NGINX on Boot:

[root@server-1] chkconfig nginx on

Check NGINX Version:

[root@server-1] nginx -v

You should get the following output:

nginx version: nginx/1.11.10

 

 

Source Articles, Blogs, Websites:

Apache 2.4 + mpm_event

DigitalOcean | How To Get Started with mod_pagespeed with Apache on CentOS

DigitalOcean | How To Add ngx_pagespeed to Nginx on CentOS 7

How to Install Nginx 1.6.2 with PageSpeed on Linux CentOS 6

Rep+ @ vandemar – irc.freenode / #nginx

 

QUEST 1 : Lightning Fast Web Servers (STRUCTURED INDEX)

QUEST 1 : Lightning Fast Web Servers – PART 1 – INTRODUCTION

QUEST 1: Lightning Fast Web Servers – PART 2 – PREREQUISITES

QUEST 1: Lightning Fast Web Servers – PART 3 -OVERVIEW/PRIOR TO CENTOS 7.3 MINIMAL INSTALLATION

QUEST 1: Lightning Fast Web Servers – PART 4 – CentOS 7.3 NETWORK CONFIGURATION AND SSH2 DAEMON CONFIGURATION WITH 4096-BIT KEYS

QUEST 1: Lightning Fast Web Servers – PART 5 – VIRTUALMIN PRO INSTALLATION AND CONFIGURATION

QUEST 1: Lightning Fast Web Servers – Part 6 – CSF FIREWALL INSTALL CONFIGURATION – FINALIZE SSH2 4096-BIT KEYS

QUEST 1: Lightning Fast Web Servers – Part 7 – VIRTUALMIN WAN AND LAN STATIC IP ADDRESSING

QUEST 1: Lightning Fast Web Servers – Part 8 – BIND 9 CONFIGURATION + VIRTUALMIN AND APACHE2 OPTIMIZATION

QUEST 1: Lightning Fast Web Servers – Part 9 – INSTALL PHP 5.6.25, PHP 7.0.15, PHP 7.1.1 + VIRTUALMIN CONFIGURATION

QUEST 1: Lightning Fast Web Servers – Part 10 – ADD STATIC WAN IP ADDRESS + ENABLE PHP 7.1.1 ON BOOT + PHP-FPM + APACHE2 + PHP INFO

QUEST 1: Lightning Fast Web Servers – Part 11 – BIND 9 + SETUP AS AUTHORITATIVE DNS NAME SERVERS + VIRTUALMIN VIRTUAL SERVER #1 CREATION

QUEST 1: Lightning Fast Web Servers – Part 12 – APACHE2 FIXES + PHP AND PHP-FPM UPDATES

QUEST 1: Lightning Fast Web Servers – Part 13 – DOVECOT FIX + VIRTUAL SERVER #2 CREATION + REMOVE SYSTEM HOST IP FROM SHARED POOL

QUEST 1: Lightning Fast Web Servers – Part 14 – VIRTUALMIN CONFIGURATIONS + INSTALL PRO LICENSE + UPDATE SYSTEM + MODIFY SETTINGS

QUEST 1: Lightning Fast Web Servers – Part 15 – PHP-FPM 5.4.x + PHP-FPM 5.6.x + PHP-FPM 7.0.x + PHP-FPM 7.1.x

QUEST 1: Lightning Fast Web Servers – Part 16 – ROUNDCUBE + SSL ON VIRTUAL SERVER #1 + SSL ON VIRTUALMIN WEBUI + APACHE2 CONFIGURATIONS

QUEST 1: Lightning Fast Web Servers – Part 17 – STATIC LAN IP NETWORK SCHEMA + APACHE2 LAN BINDING TO VIRTUAL SERVER #1

QUEST 1: Lightning Fast Web Servers – Part 18 – OPENVPN ACCESS SERVER + OPENVPN SERVER + OPENVPN CLIENT + TEST VPN

QUEST 1: Lightning Fast Web Servers – Part 19 – PRIVATE BIND 9 DNS

QUEST 1: Lightning Fast Web Servers – Part 20 – APACHE2 CONFIGURATION UPDATE + INTERNAL VIRTUALHOST MAPPING

QUEST 1: Lightning Fast Web Servers – Part 21 – SECURITY ENHANCEMENT + OPENVPN

QUEST 1: Lightning Fast Web Servers – Part 22 – SSL DOVECOT + POSTFIX + MOZILLA THUNDERBIRD

QUEST 1: Lightning Fast Web Servers – Part 23 – FFMPEG X64 + MULTIMEDIA LIBRARIES

QUEST 1: Lightning Fast Web Servers – Part 24 – CRITICAL APACHE2 UPDATE ROCKETTHEME ROCKETLAUNCHER + JOOMLA

QUEST 1: Lightning Fast Web Servers – Part 25 – ROCKETTHEME ROCKETLAUNCHER + WORDPRESS

QUEST 1: Lightning Fast Web Servers – Part 26 – ROCKETTHEME ROCKETLAUNCHER + PHPBB

QUEST 1: Lightning Fast Web Servers – Part 27 – NGINX INSTALL FROM SOURCE + MODS

QUEST 1: Lightning Fast Web Servers – Part 28 – APACHE2 + SECURITY – MOD_SECURITY + MOD_EVASIVE + OWASP V3

QUEST 1: Lightning Fast Web Servers – Part 29 – MYSQL MARIADB TUNING AND OPTIMIZATION

QUEST 1: Lightning Fast Web Servers – Part 30 – VARNISH INSTALLATION + CONFIG WITH NGINX + APACHE2

QUEST 1: Lightning Fast Web Servers – Part 31 – APACHE2 TUNING AND OPTIMIZATION

QUEST 1: Lightning Fast Web Servers – Part 32 – REDIS CACHE SERVER

QUEST 1: Lightning Fast Web Servers – Part 33 – INSTALL HYBRID-IRCD + ANOPE SERVICES + SECURITY EGGDROP

QUEST 1: Lightning Fast Web Servers – Part 34 – INSTALL SHOUTCAST SERVER + WEBUI

QUEST 1: Lightning Fast Web Servers – Part 35 – JOOMLA CMS OPTIMIZATION + SECURITY

QUEST 1: Lightning Fast Web Servers – Part 36 – WORDPRESS CMS OPTIMIZATION + SECURITY

QUEST 1: Lightning Fast Web Servers – Part 37 – PHPBB FORUM OPTIMIZATION + SECURITY

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s