Iniciador del tema
keith
(@keithkhl)
Excepto el blog número 1, todas las demás páginas web muestran la página del servidor NginX si está definida en la configuración y la página vacía si no está definida.
Debo haber hecho algo mal
Deberá definir la directiva server_name para cada dominio:
server {
listen 80;
server_name domain2.com www.domain2.com;
root /var/www/domain2; # Your WordPress installation path
}
Repita esto para cada uno de sus dominios y subdominios, ajustando el server_name
y root
directivas en consecuencia.
Asegúrese de haber configurado la red correctamente en su archivo wp-config.php. Agregue las siguientes líneas:
define('WP_ALLOW_MULTISITE', true);
Iniciador del tema
keith
(@keithkhl)
¡Gracias por la respuesta @grafmax!
Luego, algunas otras preguntas de seguimiento.
- ¿Habrá más de una ruta raíz para sitios múltiples? Digamos que WordPress está instalado en /var/www/abc, y el segundo sitio dentro de la red multisitio es bbc.com, entonces, ¿debería crear /var/www/bbc y definir esa ruta como raíz para bbc.com? Si este es realmente el enfoque correcto, ¿debería haber un archivo .conf separado? ¿O se supone que debo agregarlos todos al .conf del dominio principal?
- En /var/www/bbc, inicialmente no habrá ningún archivo. ¿Cómo funciona la configuración inicial? A diferencia de los sitios individuales, supongo que no tengo que instalar WordPress para cada uno, entonces, ¿no debería haber ningún panel de administración dentro del superdominio multisitio de WordPress donde se ejecutan los dominios secundarios? ¿Es suficiente la definición de raíz dentro de Nginx .conf?
- Suponiendo que todos los dominios secundarios tendrán cada .conf, ¿supongo que cada certificado SSL debería definirse dentro del .conf de cada uno?
Esta respuesta fue modificada hace 1 mes por
keith.
Iniciador del tema
keith
(@keithkhl)
server {
listen 80;
listen [::]:80;
root /var/www/class.giai.org;
index index.php index.html index.htm;
server_name 1.maindomain.com 2.maindomain.com newdomain.com;
error_log /var/log/nginx/1.maindomain.com_error.log;
access_log /var/log/nginx/1.maindomain.com_access.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
server {
listen 443 ssl http2;
error_log /var/log/nginx/2.maindomain.com_error.log;
access_log /var/log/nginx/2.maindomain.com_access.log;
root /var/www/2.maindomain.com; #(Not sure if I should uncomment this line, as there is no 2.main.com folder in /var/www)
server_name 2.maindomain.com;
ssl_certificate /etc/letsencrypt/live/2.maindomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/2.maindomain.com/privkey.pem;
}
server {
listen 443 ssl http2;
root /var/www/1.maindomain.com;
error_log /var/log/nginx/1.maindomain.com_error.log;
access_log /var/log/nginx/1.maindomain.com_access.log;
server_name 1.maindomain.com;
ssl_certificate /etc/letsencrypt/live/1.maindomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1.maindomain.com/privkey.pem;
El código anterior es mi ejemplo para los bloques de servidor actuales. Para los (sub)dominios que están definidos en server_name de los años 80, todos están asignados correctamente. Al menos puedo acceder a ellos sin ‘http”s”. Para los que no he definido en el bloque del servidor del puerto 80, no es accesible, como se esperaba.
Creo que el problema radica en los bloques del servidor relacionados con 443. Los sitios web se cargan cuando llamo a «http://xxx.com», pero con «https://~», me da 404. (espacio agregado antes de finalizar «debido al problema de renderizado)
Intenté definir el nombre del servidor del puerto 443 y la asignación del certificado SSL individualmente para cada dominio, lo que parece funcionar porque incluso si tengo 404 para 2.maindomain.com. Tengo un certificado SSL activado, mientras que newdomain.com sin el bloque de servidor del puerto 443 no tiene ningún certificado SSL reconocido por los navegadores.
Lo que todavía me desconcierta es dónde poner configuraciones adicionales y qué se debe agregar.
Esta respuesta fue modificada hace 1 mes por
keith.
Esta respuesta fue modificada hace 1 mes por
Yui.
Esta respuesta fue modificada hace 1 mes por
keith.
Iniciador del tema
keith
(@keithkhl)
Finalmente solucioné el problema. Para 80, simplemente descarte todos los alias de dominio para el nombre del servidor, pero la raíz es siempre el dominio superadministrador. Para 443, tengo que crear bloques de servidor para cada certificado SSL. Dado que las configuraciones detalladas son comunes y se ven «feas» si se agregan a cada bloque de servidor, creé un .conf lateral para la configuración y lo cargué mediante ‘include /myfolder/mysetting.conf’. Mientras el archivo no esté en las carpetas de escucha (conf.d, habilitado para el sitio), Nginx no hace referencia a él.
Al migrar de Apache a Nginx, puedo ver por qué la configuración del servidor es tan complicada y por qué .htaccess es una opción popular. Pero puedo sentir una mejora distintiva en el rendimiento de Apache a Nginx. Solo quiero obtener más información sobre la configuración detallada para una mejor optimización y poder utilizar Nginx al máximo.