User Tools

Site Tools


nginx_configuration

Warning: Undefined variable $html in /usr/share/nginx/html/lib/plugins/tabinclude/helper.php on line 240

Nginx Server Block (vhost)

www.files.rackerjack.uk

  • CentOS
  • Testing websites

Basic HTTP-only nginx server_block


First we need to edit /etc/nginx/nginx.conf to allow virtual hosts (known as server blocks when using nginx) This guide will show how to configure server blocks in the same manner as Ubuntu apache vhosts, using sites-available and sites-enabled.
Add the following line to the configuration in the http section:

include /etc/nginx/sites-enabled/*;

Now the best practice for nginx is to create a system similar to that of vhosts using ubuntu. Create the following directories to configure the vhosts:
mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled

Once these have been made, go to /etc/nginx/sites-available and create a vhost with the following configuration:
server {
    listen 80;
    server_name lukeshirnia.co.uk www.lukeshirnia.co.uk;
    access_log /var/log/nginx/lukeshirnia.co.uk.access.log;
    error_log /var/log/nginx/lukeshirnia.co.uk.error.log;
    root /var/www/html/lukeshirnia.co.uk;

location / {
    index index.html index.htm index.php;
    try_files $uri $uri/ =404;
}

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000; #this means php-fpm will run on a port
    # fastcgi_pass unix:/run/php-fpm/example.com.sock; or you could have php-fpm running on a socket
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/html/lukeshirnia.co.uk$fastcgi_script_name;
    }
}

You can see that php will be handled by PHP-FPM listening on port 9000. This port does not need to be opened. If you type: netstat -plnt you will be able to see PHP-FPM listening to the port.

Once the vhost had been created we will need to create a symbolic link from /sites-available/ to /sites-enabled/.

Moving into the /etc/nginx/sites-enabled/ directory and type the following:

ln -s /etc/nginx/sites-available/lukeshirnia.co.uk

Your vhost should now work.

If you wish to take a site offline for any reason, you can remove the symbolic link by using the 'rm' command on the vhost in /etc/nginx/sites-enabled/

And you are DONE!

Restart PHP-FPM and nginx if you face any issues.

nginx_configuration.txt · Last modified: 2024/05/23 07:26 by 127.0.0.1