¿Cuál es el nombre y la ubicación del archivo de configuración de Nginx (equivalente a htaccess)?

30

Hay muchos tutoriales sobre cómo escribir reglas de reescritura de Nginx para imitar el archivo .htaccess de Apache, pero no puedo decir con seguridad que sé cuál es el nombre o la ubicación de este llamado archivo de configuración de Nginx. Estoy buscando específicamente el archivo de configuración de Nginx que le permite escribir la ruta del servidor y las directivas PHP. Estoy usando Ubuntu 12 Linux y Codeigniter como mi marco PHP.

Esto es lo que sé hasta ahora:

  1. Este archivo: a /etc/nginx/nginx.confpesar de su nombre atractivo, aparentemente no es el lugar para las directivas del servidor.
  2. Este archivo: /etc/nginx/sites-available/defaultparece lo que necesito (soy capaz de generar errores de php específicos para mi aplicación) pero no puedo obtener la ruta de ruta específica de Codeigniter correcta. En primer lugar, ¿es este el archivo "config" / equivalente de .htaccess del que todos hablan?
Tim Peterson
fuente
Su problema no es con PHP, el lenguaje (es decir, programación en PHP), es con la configuración de PHP en un servidor específico, lo que explica los votos cerrados completamente válidos. No puedo comentar sobre la última parte de tu publicación, ya que parece muy subjetiva y sesgada.
nickb
1
Puede encontrar la ubicación de nginx config usando la nginx -Vque puede encontrar en el manual con man nginx. La -Vopción está documentada como "-V Imprime la versión nginx, la versión del compilador y configura los parámetros del script". Si nginxno está en su camino, use el which nginxque devuelve el camino completo a nginx$(which nginx) -V
bucabay

Respuestas:

28

Utilizo PHP con nginx en mi servidor de desarrollo con la siguiente configuración:

  1. en la /etc/nginx/nginx.confque ha añadido: include /etc/nginx/sites-enabled/*;antes de la última }.

  2. ejecute los siguientes comandos para crear las configuraciones de su sitio:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. edite la configuración del sitio, algunas configuraciones posibles (esto es a lo que me referí en mi configuración): http://kbeezie.com/view/nginx-configuration-examples/

  4. enlace al sitio disponible para habilitarlo

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. tenga en cuenta que en realidad puede incluir archivos dentro de las configuraciones en casi cualquier lugar, esto facilita la creación de múltiples sitios cuando desea agrupar configuraciones similares.

Sí, .htaccess es comparable al server{}bloque en nginx, pero también son muy diferentes. nginx tiene un enfoque mucho más liviano para analizar la configuración, y no escaneará los directorios del sitio en busca de configuración adicional, solo lo que sea visto por nginx.conf.

abestic9
fuente
- @ Andrew agradece mucha información útil !, por defecto, mi /etc/nginx/nginx.confarchivo ya tiene include /etc/nginx/sites-enabled/*;al final. Parece que estos 2 archivos están hablando entre sí en mi servidor y ahora estoy lidiando con problemas específicos de Codeigniter. ¿Estás usando codeigniter? Hay un poco de funkiness en el camino que necesito controlar ...
tim peterson
Utilizo mi propio marco que es bastante similar (aunque más primitivo) a CodeIgniter. En este momento estoy tratando de convertir mis reglas mod_rewrite regexp al módulo HttpRewrite de nginx. Mi primer gran avance fue superar los errores 403/404 que muestra nginx cuando configuré incorrectamente el rootparámetro. No dude en consultar mis preguntas si necesita inspiración.
abestic9
Gracias por el consejo de revisar sus preguntas. Estoy pensando que entiendo más ahora, gracias por ponerme en el camino ...
Tim Peterson