He configurado nginx como mi servidor principal y lo estoy usando para invertir el proxy a Apache en el puerto: 8080. Aquí está mi archivo de configuración de nginx para apache.example.io.
#
# apache.example.io
# Testing apache + nginx
#
server {
listen 80;
root /var/www/apache-example-io;
index index.php index.html index.htm;
server_name apache.example.io www.apache.example.io;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
Y aquí está mi archivo para Apache virtualhost
<VirtualHost 127.0.0.1:8080>
ServerName apache.example.io
ServerAlias www.apache.example.io
ErrorLog /var/www/apache-example-io/errror.log
DocumentRoot /var/www/apache-example-io/public_html
<Directory "/var/www/apache-example-io/public_html">
# Order allow,deny
# Allow from all
# New directive needed in Apache 2.4.3:
# Require all granted
AllowOverride All
</Directory>
</VirtualHost>
Estos funcionan bien si voy ahttp://apache.example.io/index Pero recibiré un error 403 nginx si visitohttp://apache.example.io/ No estoy seguro de cómo solucionar este problema, los registros de errores de nginx tienen el siguiente aspecto:
2018/03/14 21:25:24 [error] 24730#0:6 índice de directorio de "/var/www/" está prohibido, cliente: 211., servidor: apache.example.io, solicitud: "GET / HTTP/1.1", host: "apache.example.io"
Buscarlos en Google e intentar solucionarlos ha resultado infructuoso :(
Respuesta1
Resulta que debido a que simplemente estaba redirigiendo ciertos dominios que tenía todos directos hacia mi servidor, no había configurado una ruta predeterminada.
abrí
/etc/nginx/conf.d/default.conf
Y agregó esto en:
server {
listen 80 default_server;
return 404;
}
Esto forzará a cualquier dominio comodín no especificado y simplemente a reenviar a un 404. Cuando quiero agregar un nuevo dominio, creo un nuevo archivo para él con nginx (aplicación NodeJS) y lo reenvío a esa IP, o hago una Apache virtualhost para servir contenido PHP. :)