Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794
{"id":2645,"date":"2019-12-06T23:33:06","date_gmt":"2019-12-06T23:33:06","guid":{"rendered":"https:\/\/support.aklwebhost.com\/?post_type=manual_kb&p=2645"},"modified":"2019-12-06T23:33:06","modified_gmt":"2019-12-06T23:33:06","slug":"setup-nginx-reverse-proxy-over-apache-on-debian-or-ubuntu","status":"publish","type":"manual_kb","link":"https:\/\/support.aklwebhost.com\/knowledgebase\/setup-nginx-reverse-proxy-over-apache-on-debian-or-ubuntu\/","title":{"rendered":"Setup Nginx Reverse Proxy over Apache on Debian or Ubuntu"},"content":{"rendered":"

Nginx is a lightweight web server that has been proven to serve static files faster than Apache. This tutorial will guide you how to install Nginx as reverse proxy over Apache web server.<\/p>\n

Requirements<\/h2>\n

You have installed Apache on your server. Apache is already running a site on port 80.<\/p>\n

Change Apache listening port<\/h2>\n

Edit\u00a0\/etc\/apache2\/ports.conf<\/code>\u00a0to make Apache listening to port 8080 instead of default port 80.<\/p>\n

Find following line:<\/p>\n

NameVirtualHost *:80\r\nListen 80\r\n<\/code><\/pre>\n

Change it to:<\/p>\n

NameVirtualHost *:8080\r\nListen 8080\r\n<\/code><\/pre>\n

Do not forget to your existing vhost listening port in\u00a0\/etc\/apache2\/sites-enabled\/*<\/code><\/p>\n

Change:<\/p>\n

<VirtualHost *:80>\r\n<\/code><\/pre>\n

To:<\/p>\n

<VirtualHost *:8080>\r\n<\/code><\/pre>\n

Disable Unuse modules in Apache<\/h2>\n

Since HTTP requests is now handled by Nginx, we can disable KeepAlive in Apache. Edit\u00a0\/etc\/apache2\/apache2.conf<\/code>\u00a0and change:<\/p>\n

KeepAlive Off\r\n<\/code><\/pre>\n

Also, run following commands to disable unused modules.<\/p>\n

a2dismod deflate\r\na2dismod cgi\r\na2dismod autoindex\r\na2dismod negotiation\r\na2dismod ssl\r\n<\/code><\/pre>\n

Install forward module<\/h2>\n

Install\u00a0mod_rpaf<\/strong>\u00a0in Apache to forward visitor IP to Apache. Otherwise, your scripts will read REMOTE_ADDR values as server IP.<\/p>\n

apt-get install libapache2-mod-rpaf\r\n<\/code><\/pre>\n

Stop Apache service<\/h2>\n
\/etc\/init.d\/apache2 restart\r\n<\/code><\/pre>\n

Setup Nginx<\/h2>\n

Install Nginx.<\/p>\n

apt-get install nginx\r\n<\/code><\/pre>\n

Remove default vhost to prevent conflicts.<\/p>\n

rm -rf \/etc\/nginx\/sites-enabled\/*\r\n<\/code><\/pre>\n

Create a new default vhost:<\/p>\n

cat >\/etc\/nginx\/sites-available\/000-default <<EOF\r\nserver {\r\n    access_log off;\r\n\r\n    location \/ {\r\n        proxy_set_header X-Real-IP $remote_addr;\r\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n        proxy_set_header Host $host;\r\n        proxy_pass http:\/\/127.0.0.1:8080;\r\n    }\r\n}\r\nEOF\r\n\r\nln -s \/etc\/nginx\/sites-available\/000-default \/etc\/nginx\/sites-enabled\/000-default\r\n<\/code><\/pre>\n

Create vhost for existing website to forward request to Apache:<\/p>\n

cat >\/etc\/nginx\/sites-available\/domain.com <<EOF\r\nserver {\r\n    server_name www.domain.com domain.com;\r\n    root \/var\/www\/domain.com\/;\r\n\r\n    access_log off;\r\n\r\n    # Static contents\r\n    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {\r\n        expires max;\r\n    }\r\n\r\n    # Dynamic content, forward to Apache\r\n    location \/ {\r\n        proxy_set_header X-Real-IP $remote_addr;\r\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n        proxy_set_header Host $host;\r\n        proxy_pass http:\/\/127.0.0.1:8080;\r\n    }\r\n}\r\nEOF\r\n\r\nln -s \/etc\/nginx\/sites-available\/domain.com \/etc\/nginx\/sites-enabled\/domain.com\r\n<\/code><\/pre>\n

Restart Nginx and it’s done.<\/p>\n

\/etc\/init.d\/nginx restart<\/code><\/pre>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","manualknowledgebasecat":[109,233,242,247],"manual_kb_tag":[382],"_links":{"self":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2645"}],"collection":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/comments?post=2645"}],"version-history":[{"count":1,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2645\/revisions"}],"predecessor-version":[{"id":2646,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2645\/revisions\/2646"}],"wp:attachment":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/media?parent=2645"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manualknowledgebasecat?post=2645"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb_tag?post=2645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}