Good experience with InnoHosting (6 month customer)

Normally I do not write comments about the hosts because they are all annoying and they tell you to open endless entries and waste time.
But with InnoHosting it is not the case. They are available 24 hours a day, 7 days a week in the chat and they seem to understand what you are talking about
They have knowledge in migration and they do everything quickly. They solve all the things in the chat and they do not tell you to open the ticket and then they let you wait 48 hours like most of the hosts.

all teams are first class nerds who understand and not women who do not understand ****]

Do 80 high da, pa dofollow profile backlink for $ 6

do 80 high da, pa dofollow profile backlink

Why is this the best service for SEO?Because it is getting a high DA of search engine optimization (SEO), the backlinks of PA and I are also performed manually without the use of any software. I will make a high-profile backlink of DA DA dofollow of unique profile that provides a ranking of your site.
Why my service:100% Extremely friendly with Panda, Penguin and Hummingbird. Full report on Excel sheet Satisfaction guaranteed 100% Money back guarantee (Unsatisfied case) White Hat 100% Manual Backlink 100% Unique IPs 24/7 Customer service Extremely high DA 50 – 100 links To get this offer please ask me For any doubt, do not hesitate to tell me.

. | KVM VPS | DDos Protection | Starting at $ 6 / Mo | Location [PL]

Web hosting – Fast and reliable VPS provider.

Only for WHT users, 50% OFF For the first 1 or 3 months, just use the coupon: WHT50OFF

Characteristics for all plans:

  • Xeon E5 CPUs
  • RAID 10 disks
  • 1 additional IP – $ 1.5 / month
  • KVM virtualization
  • Protection of DDos free
  • Free access to VNC
  • Complete access to the root
  • Flexible control panel
  • Available operating systems: Centos (5,6,7), Debian (7,8,9), Ubuntu (16,17,18), Fedora (20,21,27), Suse (11,12,13)
  • 99.9% guaranteed time
  • Support 24/7/365
  • Location of servers: Poland
  • Accepted methods of payment: PayPal, Bitcoins, Credit card
  • 30 days money back guarantee


Webhosting1st VPS1:

Cores – 1
Swap – 1GB
Disk space – 20 GB
Monthly bandwidth – 250GB
IP No. – 1

Price: $ 6 / Mo
Order now

Webhosting1st VPS2:

Cores – 1
Swap – 2GB
Disk space – 40 GB
Monthly bandwidth – 500GB
IP No. – 1

Price: $ 8 / Mo
Order now

Webhosting1st VPS3:

Cores – 2
Swap – 4GB
Disk space – 80 GB
Monthly bandwidth – 1000GB
IP No. – 1

Price: $ 16 / Mo
Order now

Webhosting1st VPS4:

Cores – 3
Swap – 6GB
Disk space – 120 GB
Monthly bandwidth – 1500GB
IP No. – 1

Price: $ 24 / Mo
Order now

Webhosting1st VPS5:

Cores – 4
Swap – 8GB
Disk space – 160 GB
Monthly bandwidth – 2000GB
IP No. – 1

Price: $ 32 / Mo
Order now

Webhosting1st VPS6:

Cores – 6
RAM – 12GB
Swap – 12GB
Disk space – 240 GB
Monthly bandwidth – 3000GB
IP No. – 1

Price: $ 48 / Mo
Order now

Webhosting1st VPS7:

Cores – 8
RAM – 16GB
Swap – 16GB
Disk space – 320GB
Monthly bandwidth – 4000GB
IP No. – 1

Price: $ 64 / Mo
Order now

Webhosting1st VPS8:

Cores – 16
RAM – 32GB
Swap – 32GB
Disk space – 640 GB
Monthly bandwidth – 8000GB
IP No. – 1

Price: $ 128 / Mo
Order now

Additional IPs:

Price: $ 1.5 / Mo
Order now

Contact Us

Email: sales [at]

CentOS 7 LAMP Server Tutorial Part 6: Moving to NGINX

Welcome to the latest installment in the CentOS 7 LAMP Server Tutorial: Modernized and explained series! In this article we are going to convert our LAMP server into a LEMP server by removing Apache and installing NGINX (pronounced "Engine X") instead.

Why would we want to replace the Apache web server with NGINX? The answer is in concurrence. NGINX can handle more connections at the same time as Apache without causing any additional work for the server. It can be used as a stand-alone web server or as a "buffer" or "buffer" between Apache and the rest of the Internet. In this tutorial we are going to replace the Apache web server with an independent installation of NGINX. Let us begin!

Preparation for the change.

If you followed our series, now you have a WordPress website that runs on Apache with PHP 7.3 and an Encrypt SSL certificate. Apache serves the non-SSL site on port 80 and the SSL site on port 443. NGINX also wants to listen on port 80 and port 443, because these are the ports that HTTP and HTTPS always use. We can not put NGINX alternative ports because that web browser would never find it. The solution is to disable or remove Apache, and then configure NGINX instead.

In Part 2 we set up Apache with a VirtualHost that tells Apache where our WordPress site should be from. NGINX will need a similar configuration so you know how to serve our website. We will also have to tell NGINX how to use the Encrypt SSL certificate.

We are going to make some drastic configuration changes in this tutorial, so it is necessary to have a warning: Backup of your dataY do not do this on a production server. If you already have a website in operation that is generating revenue or is important to you, having. The best thing for us is to get a second VPS, run the entire tutorial and then set up a test site. Once you are sure it works for you, migrate your site to your new server based on NGINX.

Eliminating apache

Are you still with us? Cool! This is going to be fun. As mentioned above, we need to get Apache out of the way so that NGINX can do its job. There are two ways to do it: Stop and disable Apache, or simply remove Apache. We are going to eliminate it. This is easily done with a single command:

yum - and remove httpd

This is what it looked like in our low-end VPS:

You will notice that Yum also deleted mod_ssl (the Apache SSL module) and the Let's Encrypt SSL certificate for Apache. We will replace them with the NGINX equivalents in the next step.

Installing NGINX

NGINX can be installed directly from the CentOS 7 Yum base repositories, but it lacks some of the functions that we will need. We will use a repository that is maintained by someone with the username "error". Do not worry, there are no mistakes! We need to install that repository before installing NGINX. Here is the command to use:

curl -o /etc/yum.repos.d/nginx-error.repo

What about the Encrypt SSL certificates? In part 3 of this series, we learned that certbot uses its Apache module to intelligently request and install the Encrypt SSL certificates. But since we are switching to NGINX, we need to install the similar NGINX module for certbot.

The following command will install the updated version of NGINX and the NGINX certbot module:

yum -y install nginx python2-certbot-nginx

This is how it looked in our VPS:

Now we will enable NGINX to start at startup, and we will start it for the first time:

systemctl enable nginx.service
systemctl start nginx

You may notice that we are not doing anything with PHP. That's because we previously configured PHP-FPM for PHP 7.3. PHP-FPM is independent of the web server. We can use any web server to communicate with PHP-FPM through its Unix socket. We will be configuring that communication very soon. For now you should see the following page when you go to your website:

If you do not see that page, go back and review your work, it's probably something small.

Configuring NGINX to replace Apache

We originally configured Apache with a VirtualHost configuration so that it could serve files for our virtual website. NGINX has the same feature, but NGINX calls them "server blocks" instead of "virtual hosts". And like Apache, we can create a directory that is only for the configuration files that are specific to each hosted website.

First we create the necessary directory and then make a backup copy of the default nginx.conf file (the main NGINX configuration file) before creating our own files.

mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
mkdir / etc / nginx / sites-enabled

Now let's use "nano" to create two files: /etc/nginx/nginx.conf and /etc/nginx/sites-enabled/lowend.conf. The nginx.conf file contains directives for the entire server, where lowend.conf contains the server lock and the specific configuration information of our website. Copy and paste these configuration files. Be sure to read them in full, because they explain all the configuration. Comments are a very important part of this tutorial.

nano /etc/nginx/nginx.conf

Paste in the following configuration file:

nginx user;
auto worker_processes;
error_log /var/log/nginx/error.log;
pid /run/;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.

includes /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;

http {
log_format main & # 39; $ remote_addr - $ remote_user [$time_local] "$ request" & # 39;
& # 39; $ status $ body_bytes_sent "$ http_referer" & # 39;
& # 39; "$ http_user_agent" "$ http_x_forwarded_for" & # 39 ;;
access_log /var/log/nginx/access.log main;
log_format cache_status & # 39;[$time_local] "$ request" $ upstream_cache_status & # 39 ;;
access_log /var/log/nginx/cache.log cache_status;
send file in
tcp_nopush in;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 1024;

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

# Enable the NGIXN fastcgi cache in / var / run / nginx-cache and configure the cache keys

fastcgi_cache_path / var / run / nginx-cache levels = 1: 2 keys_zone = nginx-cache: 100m inactive = 60m;
fastcgi_cache_key "$ scheme $ request_method $ host $ request_uri";

# Add X-Cache headers to HTTP requests. This allows us to see if the cached content is being served.
# If cached content is served, the header will contain the value "HIT", and if it is not "MISS".

add_header X-Cache $ upstream_cache_status;

# Detect session in the WordPress user cookie
# This is used in the Server Block to bypass the cache for registered WordPress users.
map $ http_cookie $ log_in {
default 0;
~ SESS 1;
~ wordpress_logged_in 1;

# Allow individual server blocks to be stored in / etc / nginx / site-enabled
# and still be included in the NGINX configuration.

includes /etc/nginx/sites-enabled/*.conf;


Now we will create the server block for our website:

nano /etc/nginx/sites-enabled/lowend.conf

Paste in the following configuration file:

server {

# We'll start enabling GZIP compression for the server
gzip in
gzip text types / simple text / css application / json application / x-javascript text / xml application / xml application / xml + rss text / javascript application / application / x-font-ttf font / opentype image / svg + image xml / x-icon;
gzip_proxied no-cache no-store private expired auth;
gzip_min_length 1000;

# This server block listens on port 80 for HTTP requests
listen 80;

#Define the host names for this server block, separated by a space
server_name lowend-tutorial.tld www.lowend-tutorial.tld;

# Define the root of the document from which NGINX will serve the pages for the site.
root / home / lowend / public_html;

# Look for index.php. If you want to add index.html or any other default page, add it here.
Index index.php;

# Define the access log file for the account
access_log /home/lowend/logs/lowend-tutorial.tld-access.log main;

# Do not log in favicon.ico
location = /favicon.ico {
log_not_found off;
access_log disabled;

# Do not register robots.txt
location = /robots.txt {
allow everything;
log_not_found off;
access_log disabled;

Location / {
# include the "? $ args" part so that non-default permanent links do not break when a query string is used
try_files $ uri $ uri / /index.php?$args;

#Bypass cache for registered WordPress users
# This is important so that caching does not interfere with development.
fastcgi_cache_bypass $ log_in;
fastcgi_no_cache $ log_in;

location ~  .php $ {
try_files $ uri = 404;
# Connect to PHP-FPM for PHP calls through fastcgi
# This is the NGINX equivalent of the Apache fastcgi directives that were previously used
fastcgi_pass unix: /var/run/php73-fpm/php73-fpm.lowend.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
includes fastcgi_params;

# Make use of the nginx-cache that was defined in nginx.conf
fastcgi_cache nginx-cache;
fastcgi_cache_valid 200 60m;

# Set a maximum expiration time for several types of files, and do not register 404 for them
location ~ * . (js | css | png | jpg | jpeg | gif | ico) $ {
max expires;
log_not_found off;
# Configure the cache purge. This will allow us to use a small shell script to purge the cache every hour.
location ~ /purge(/.*) {
deny everything;
fastcgi_cache_purge nginx-cache "$ scheme $ request_method $ host $ 1";


Now we can restart NGINX to enable the new configuration:

systemctl restart nginx

NGINX and Let's Encrypt

In the previous steps, we eliminated the certbot-apache module and installed the certbot-nginx module. The new module does all the same things for NGINX that certbot-apache did for Apache. We will use the certbot-nginx module to reinstall our certificate with the following command:

certbot --nginx

As there is already a certificate, we can select the option "1: try to reinstall this existing certificate"

We also need to update our cron job to renew certificates. Edit the crontab with the following command:

crontab -e

Edit the configuration so that it looks like the following line:

1 * / 12 * * * certbot --nginx renew

Check your work

Now you should be able to load your WordPress website in a browser. If not, review all the previous steps and check the NGINX error logs.

With that reboot, NGINX is fully configured for your WordPress site. Caching is enabled, and when you log in to WordPress, NGINX will bypass the cache so you can easily see your changes.

Clearing the cache

We have configured a way to clear the NGINX cache by calling a URL with HTTP "PURGE" instead of "GET". This is an excellent way to do it, and in fact we install the customized version of NGINX just to enable this feature. But there is a minor problem. At the time of writing this article, there are no NGINX cache plugins for WordPress that really work when cleaning the cache using the "PURGE" method. They require that PHP can directly access the NGINX cache files, which presents a security risk: all sites share the same cache directory, and the PHP-FPM instance of each site would have access to another site cache. That is not safe at all!

To remedy this, we will take advantage of wp-cli to give us a list of all the publications and pages in your WordPress site, then pass it to a "for" loop that calls CURL to create an HTTP request that purges the cache. of each post or page. We're going to do this in a very simple shell script. This script should not go in the public_html directory, and should be owned by the user of the website and executed. The username of our website is "lowend" and, therefore, this file will be saved in / home / lowend /. We use the following command to create the file:

sudo -u lowend nano /home/lowend/

Paste in the following script. Be sure to correct the URL to match your site:

#! / bin / bash
#Use wp-cli to find all the pages and publications and use CURL to issue a
# HTTP PURGE to empty the cache of each page and publication.
for page in
$ (/ usr / local / bin / wp --path = / home / lowend / public_html post list --post_type = page, post --format = csv --field = post_name)
do curl --silent --output / dev / null - X PURGE -I "https: //lowend-tutorial.tld/$page"

Now set the permissions to 755:

chmod 755 /home/lowend/

We want to clear the cache regularly, so we'll create a cron job that will run our script every hour:

crontab -e -u lowend

Paste in the following cron job:

1 * * * * /home/lowend/

Last but not least, log in to your WordPress website and remove all caching add-ons. Instead, we're going to install an add-on called "Redis Object Cache" by Till Krüss. Install and activate the script, and it will take care of the caching of objects through Redis, while NGINX will take care of the caching of the page. It is a great configuration.

And with that, we're finished! Our tests showed that we were able to meet 30% more requests per second with this configuration. Depending on your VPS, you can do the same, and possibly much more.

The end is just the beginning

This tutorial marks the conclusion of the LAMP server series. We hope you found it informative! The things you learned from building your own server from scratch will help you understand and appreciate what goes on behind the scenes when you use a control panel that manages the settings for you. They really save a lot of work! But even more than that, you have learned how virtual hosting works, how you can configure PHP, and how to use the basic Linux tools to manage your server.

What other things could you do? Instead of configuring NGINX like we did in this tutorial, why not stop configuring Apache and learn how to configure NGINX as a proxy caching server? Learn how to create multiple websites by creating new users and new virtual hosts or server blocks (or both, as the case may be). Tired of building configuration files from scratch every time? Learn a tool like Ansible that will do all the work for you. The possibilities are endless. This may be the end of this series, but it is only the beginning for someone who is ready to continue learning. Enjoy!

How can you earn more than $ 2,500 in 6 months with only $ 25

You no longer need to be financially broke.
I will be happy to share with you
how can you make more than $ 2500
Within 6 months with only $ 25.


Set up and run the Geo-targeted web traffic campaign for 6 months for $ 5

Welcome to Best Traffic at SeoClark

►300 + daily visitors for 6 months
► Large variety of visitors that can have a positive impact on your website
►No proxy and VPN visitors (we have the strongest filters)

by: mitasmm
Created: –
Category: Traffic
Views: 166


I can do MS Excel, Data Entry Work For You for $ 6

I can do Ms Excel, Data Entry Work For You

I'm an expert in data entry, Ms Excel, Copy Paste, PDF to Excel, Web Research Who knows the value of time and hard work and always delivers the Work on time with the best quality..
Available 24/7

I am pleased here to provide

Copy paste
Data mining
Leading generation
Manual typing
PDF to word / excel
Image / page scanned to word / excel
Search for contact details
Google Spreadsheet
Social media marketing
Bank account statement / Excel credit cardCollection of property dataCompilation of Linkedin data

Instagram data collection

Collection of Amazon product dataInternet research / web research
Email search / Email list
Mailing list in Excel / Google Spreadsheet
List of products (wordpress, shopify, magento)

I can guarantee 100% of customer satisfaction with all my deliverable work, Delivery on time with the best quality. Hire me and you will never be disappointed.


wi fi – Use wlan1 instead of wlan0 on Android Nexus 6

I'm trying to use a WiFi dongle with Android Nexus 6 with custom ROM and kernel. I have installed WiFi USB dongle drivers on the Android phone that appear in the wlan1 network interface in the adb shell. While, the default WiFi appears in wlan0. However, I can not access or ping the devices available on wlan1.

I have connected the USB device to your WiFi and assigned an IP address:

iw dev wlan1 connect -w WiFi-XC
ip addr add transmission dev wlan1

The dmesg shows that the association with WiFi AP is successful:

[  242.667204]    IPv6: ADDRCONF (NETDEV_UP): wlan1: the link is not ready
[  245.599269] wlan1: authenticate with 70: b3: d5: 95: 94: 6e
[  245.599934] wlan1: send auth to 70: b3: d5: 95: 94: 6e (test 1/3)
[  245.603278] wlan1: authenticated
[  245.604767] wlan1: associate with 70: b3: d5: 95: 94: 6e (test 1/3)
[  245.606292] wlan1: RX AssocResp from 70: b3: d5: 95: 94: 6e (capab = 0x421 state = 0 help = 2)
[  245.609720] IPv6: ADDRCONF (NETDEV_CHANGE): wlan1: the link is ready
[  245.616657] wlan1: associate

The routing table looks like: dev wlan0 proto kernel link scope src dev wlan1 proto kernel link scope src

Whereas, the output of ifconfig looks like:

wlan0 Encapsulated link: Ethernet HWaddr 44: 80: eb: 30: e5: 03
inet addr: Bcast: Mask:
inet6 addr: fe80 :: 4680: ebff: fe30: e503 / 64 Scope: Link
RX packages: 3670 errors: 0 discarded: 0 overflows: 0 frames: 0
TX packages: 4500 errors: 0 discarded: 0 saturations: 0 transporter: 0
collisions: 0 txqueuelen: 1000
RX bytes: 854154 TX bytes: 1080264
wlan1 Encapsulated link: Ethernet HWaddr 70: b3: d5: 95: 85: f1 controller wifidongle
inet addr: Bcast: Mask:
inet6 addr: fe80 :: 72b3: d5ff: fe95: 85f1 / 64 Scope: Link
RX packages: 487 errors: 0 discarded: 0 overflows: 0 frames: 0
TX packages: 29 errors: 0 discarded: 0 overflows: 0 transporter: 0
collisions: 0 txqueuelen: 1000
RX bytes: 30055 TX bytes: 6051

When I try to ping the router at, or ping the device from the router, the ping does not succeed. However, when I try to run nmap -sn In the router to see the devices you can see, surprisingly it shows that you can see the device:

Starting Nmap 7.60 ( at 2019-07-11 12:56 UTC
Nmap scan report for
The host is up (0.0017s of latency).

I suspect that both wlan0 and wlan1 can not work at the same time. If this is the case, how can I remove wlan0. If this is not the case and both wlan0 and wlan1 can work at the same time, can anyone suggest a solution?