2 votos

¿Cómo migrar mi servidor Apache a Nginx?

Tengo un servidor Apache en Ubunu 18.04 con un Drupal 8 sitio que quiero migrar a Nginx y PHP7.3-FPM.

Este es el único sitio en el servidor. No sé Nginx.

He eliminado el Apache con el siguiente comando :

sudo apt autoremove --purge apache2*

Aquí es la configuración que tenía en Apache :

<VirtualHost *:80>
   ServerAdmin contact@domaine.com
   ServerName domaine.com
   ServerAlias www.domaine.com
   Protocols h2 http/1.1
   DocumentRoot /var/www/www-domaine-com/web/

   <Directory /var/www/www-domaine-com/web>
      Options +Includes -Indexes +FollowSymLinks
      AllowOverride All
      Require all granted
   </Directory>

   <FilesMatch \.php$>
      SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
   </FilesMatch>

   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

He aquí cómo he instalado Nginx :

sudo apt install nginx
sudo ufw allow in "Nginx HTTP"

Yo estoy probando la dirección IP de mi servidor y el Nginx, se mostrará la página.

sudo unlink /etc/nginx/sites-enabled/default

Aquí está mi la configuración de Nginx :

server {
    listen :80;
    listen [::]:80;
    server_name domaine.com www.domaine.com;

    root   /var/www/www-domaine-com/web;
    index  index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
    location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            include fastcgi_params;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Puedo crear un enlace simbólico de mi nueva configuración :

sudo ln -s /etc/nginx/sites-available/www.domaine.com /etc/nginx/sites-enabled/

Puedo probar mi configuración :

sudo nginx -t

Se muestra este mensaje :

nginx: [emerg] no host in ":80" of the "listen" directive in /etc/nginx/sites-enabled/www-domaine-com:2
nginx: configuration file /etc/nginx/nginx.conf test failed

4voto

Michael Hampton Puntos 88271

El mensaje de error muestra que tiene un error en la línea especificada de su configuración nginx.

     listen :80;
 

Este es un error tipográfico; debería aparecer como

     listen 80;
 

2voto

fukawi2 Puntos 3522

Basado en nuestra corta foro de discusión para profesionales en los comentarios, mi mejor conjetura es que hay otra server bloque en /etc/nginx/nginx.conf que actúa como el servidor por defecto de forma en el momento de acceso por IP, nginx sirve que server bloque en lugar de las que has configurado en /etc/nginx/sites-available/www-s1biose-com. Usted puede quitar que server bloque de nginx.conf, o simplemente quite default_server de la server_name directiva en ella y añadir default_server a server_name en su configuración.

No mencionar lo de la distribución que se está utilizando, pero también verifique que el nginx.conf archivo, incluyendo archivos de /etc/nginx/sites-available/. CentOS no por defecto, no estoy seguro acerca de Ubuntu/Debian y otros.

Por qué obtener una conexión rechazada cuando se accede por el nombre de dominio (que deberían funcionar como coincide con la server_name directiva en su configuración), compruebe que la resolución del DNS está apuntando a la dirección IP correcta, y compruebe que su navegador no está tratando de HTTPS en lugar de HTTP, como usted no ha configurado HTTPS.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: