In questo tutorial, ti forniremo istruzioni dettagliate su come configurare i blocchi del server nginx su Ubuntu 16.04 e CentOS 7. I blocchi del server Nginx vengono spesso utilizzati per eseguire più siti Web su un unico indirizzo IP.
Nota che questo tutorial è solo per Nginx. Se usi Apache, dovrai configura host virtuali
1. Installa Nginx su Ubuntu
Assicurati che i pacchetti del sistema operativo del tuo server siano completamente aggiornati:
apt-get update apt-get upgrade
Arresta e rimuovi Apache, quindi installa nginx utilizzando i seguenti comandi:
service apache2 stop apt-get remove apache2 apt-get autoremove apt-get install nginx
Rimuovere il file di configurazione nginx predefinito:
rm /etc/nginx/sites-enabled/default
Abilita il servizio nginx per l'avvio all'avvio e avvialo:
systemctl enable nginx systemctl start nginx.service
2. Installa Nginx su CentOS
Assicurati che tutti i pacchetti del sistema operativo siano aggiornati eseguendo i seguenti comandi:
yum clean all yum update
Arresta e rimuovi Apache se è installato e in esecuzione sul tuo server virtuale:
systemctl stop httpd systemctl disable httpd yum remove httpd
Installa nginx:
yum install nginx
Inoltre, potresti voler installare PHP e MariaDB, quindi esegui il seguente comando:
yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml
Modifica il file di configurazione /etc/php-fpm.d/www.conf e cambia:
user = apache group = apache
a:
user = www-data group = www-data
Esegui il seguente comando:
chown www-data: -R /var/lib/php/session
Avvia i servizi PHP-FPM, Nginx e MariaDB e abilita l'avvio all'avvio:
systemctl start php-fpm systemctl start nginx systemctl start mariadb
systemctl enable php-fpm systemctl enable nginx systemctl enable mariadb
3. Configura nginx e imposta i blocchi del server nginx
Configuriamo le direttive principali nel file di configurazione principale di nginx chiamato 'nginx.conf'. Dovrebbe trovarsi nella directory /etc/nginx/ sul tuo server.
vi /etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /var/run/nginx.pid;
utente – un utente che possiederà ed eseguirà il server nginx.
processi_lavoratori – in generale, è meglio impostare nginx worker_processes config sul numero di CPU. Se ad esempio stai utilizzando il nostro piano VPS SSD 4, imposta worker_processes su 4.
Per controllare il numero di CPU sul tuo server, puoi usare il seguente comando:
#cat /proc/cpuinfo | grep processor | wc -l 4
pid – la posizione in cui nginx scriverà il suo ID di processo principale, o PID.
Se usi CentOS, crea un nuovo file di configurazione Nginx per il tuo sito web:
vi /etc/nginx/conf.d/domain1.com.conf
Aggiungi il seguente contenuto:
server { server_name www.domain1.com domain1.com; listen 80; root /var/www/html/domain1.com; access_log /var/log/nginx/domain1.com-access.log; error_log /var/log/nginx/domain1.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Se devi ospitare più di un sito Web sullo stesso server (utilizzando lo stesso indirizzo IP), puoi creare un nuovo blocco server. È meglio creare un nuovo file di configurazione per ogni sito web.
Ad esempio, crea un secondo file di configurazione di nginx denominato /etc/nginx/conf.d/domain2.com.conf e aggiungi lo stesso contenuto di /etc/nginx/conf.d/domain1.com.conf , ma assicurati di sostituirlo domain1.com con il secondo nome di dominio che include la radice del documento del tuo sito Web, la posizione dei file di registro ecc.:
server { server_name www.domain2.com domain2.com; listen 80; root /var/www/html/domain2.com; access_log /var/log/nginx/domain2.com-access.log; error_log /var/log/nginx/domain2.com-error.log; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ /\.ht { deny all; } }
Se utilizzi il sistema operativo Ubuntu, crea il file di configurazione nginx "domain1.com.conf" nella directory /etc/nginx/sites-available.
vi /etc/nginx/sites-enabled/domain1.com.conf
(aggiungi lo stesso contenuto del contenuto sopra elencato, ad esempio /etc/nginx/conf.d/domain1.com.conf su un server CentOS).
Quindi, crea un collegamento simbolico da questo file alla directory abilitati per i siti:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Ripetere la stessa procedura e creare nuovi file di configurazione per tutti gli altri siti Web ospitati sul server.
4. Testa la configurazione di Nginx
nginx -t
Se il test ha esito positivo, riavvia il servizio Nginx:
systemctl restart nginx
Carica i file del tuo sito web nelle directory /var/www/html/domain1.com , /var/www/html/domain2.com /var/www/html/domainN.com.
L'utente del server web (www-data) deve avere accesso alle directory /var/www/html/domain1.com , /var/www/html/domain2.com , /var/www/html/domainN.com. Può essere facilmente eseguito eseguendo il seguente comando:
chown -R www-data:www-data /var/www/html/
Ovviamente non è necessario Come configurare i blocchi server Nginx su Ubuntu e CentOS, se utilizzi uno dei nostri servizi di hosting VPS Nginx, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di configurare il server nginx blocchi per te. Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.
PS. Se ti è piaciuto questo post, su come configurare Nginx Server Blocks su Ubuntu e CentOS, condividilo con i tuoi amici sui social network usando i pulsanti a sinistra o lascia semplicemente una risposta qui sotto. Grazie.