Blog

Etiqueta: iis7

Cambiar el modo de ejecución de PHP a FastCGI en Plesk Windows

Publicado en Sistemas TI en enero 13, 2010 9:05 pm

En IIS es muy recomendable ejecutar las aplicaciones PHP como FastCGI, la mejora de rendimiento es notable. Además en entornos en los que hay corriendo más de una aplicación php, esto nos permite separar los procesos facilitando la administración y aislando una aplicación de otra.

Utilizando Plesk, por defecto el panel utiliza ISAPI para ejecutar las aplicaciones y permite la elección entre CGI y FastCGI. Nuestro consejo es siempre utilizar FastCGI, a no ser que no nos quede otro remedio.

Establecer FastCGI por defecto

Hay que establecer el valor “fastcgi” en el registro:

# En el registro de Windows vamos a:

HKEY_LOCAL_MACHINESOFTWAREPLESKPSA ConfigConfig

# Y establecemos:

PLESKCP_PHP_MODE -> fastcgi

Luego vamos a la consola (cmd) y desde el directorio %plesk_dir% ejecutamos el siguiente comando para que se apliquen los cambios:

reconfigurator.exe /check=Services

Crear un certificado SSL autofirmado en IIS7

Publicado en Sistemas TI en enero 4, 2010 9:03 am

1. Abrir el Administrador de IIS, seleccionar el nodo y abrir Certificados de servidor.

2. Seleccionar Crear un certificado autofirmado. Una vez allí pedirá el nombre que deseamos poner al certificado, yo he elegido el hostname de mi propia máquina.

3. Seleccionar el sitio web donde se desea instalar el certificado, yo he seleccionado Default Web Site, luego ir a Enlaces…

4. Pinchar en Agregar.

5. Seleccionar tipo https, el puerto por defecto será el 443. Y luego escoger el nombre del certificado.

5. Tras aceptar, en el panel de acciones aparece una nueva opción que enlaza al sitio seguro.

Si se desea requerir siempre el acceso por https, ir a Configuración de SSL.

6. Seleccionar Requerir SSL y listo.

IIS7, reglas de url rewrite que deberías conocer

Publicado en Desarrollo web en diciembre 18, 2009 2:52 pm

Cada vez es más importante disponer de una buena arquitectura de urls en nuestras aplicaciones y sitios web.

Arquitecturas de servicios como REST y la importancia de optimizar el SEO cara a resultados de búsquedas, suelen ser los dos motivos más importantes para que nuestra aplicación necesite disponer de su propia estrategia de urls corente al contenido que se ofrece en cada solicitud.

Desde hace ya dos años, IIS7 goza de su propio sistema de url rewrite nativo, que nos permite de una forma muy sencilla aplicar las reglas necesarias para implantar nuestra estrategia de urls.

Aquí van unos ejemplos de reglas imprescindibles que he ido recopilando estos últimos años:

Eliminar la última barra “/” de la url


<rule name="Eliminar la ultima barra en la url"
      stopProcessing="true">

  <match url="(.*)/$" />
  <conditions>
     <add input="{REQUEST_FILENAME}"
          matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}"
          matchType="IsDirectory" negate="true" />
  </conditions>

<action type="Redirect"
        redirectType="Permanent" url="{R:1}" />
</rule>

Agregar la última barra “/” a la url

<rule name="Agregar la ultima barra a la url"
      stopProcessing="true">

  <match url="<span><span>(.*[^/])</span></span>$" />
  <conditions>
     <add input="{REQUEST_FILENAME}"
          matchType="IsFile" negate="true" />
     <add input="{REQUEST_FILENAME}"
          matchType="IsDirectory" negate="true" />
  </conditions>

<action type="Redirect"
        redirectType="Permanent" url="{R:1}/" />
</rule>

Convertir toda la url a minúsculas

<rule name="Forzar toda la url a minusculas"
      stopProcessing="true">

      <match url=".*[A-Z].*" ignoreCase="false" />
      <action type="Redirect" url="{ToLower:{R:0}}"
              redirectType="Permanent" />

</rule>

Quitar las www del hostname

<rule name="Quitar las www"
      stopProcessing="true">
     <match url="(.*)" />
     <conditions>
       <add input="{HTTP_HOST}" negate="true"
            pattern="^blackslot.com$" />
     </conditions>
     <action type="Redirect" url="http://blackslot.com/{R:1}"
             redirectType="Permanent" />
</rule>

Añadir las www al hostname

<rule name="Añadir las www"
      stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true"
                pattern="^www.blackslot.com$" />
      </conditions>
      <action type="Redirect" url="http://www.blackslot.com/{R:1}"
              redirectType="Permanent" />
</rule>

Forzar https

<rule name="Forzar https"
      stopProcessing="true">

      <match url="(.*)" />
      <conditions>
         <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect"
              url="https://{HTTP_HOST}/{R:1}"
              redirectType="SeeOther" />
</rule>

Rechazar hotlinking a imágenes

<rule name="Rechazar hotlinking"
      stopProcessing="true">

      <match url=".*.(gif|jpg|png)$"/>
      <conditions>
        <add input="{HTTP_REFERER}"
                pattern="^$" negate="true" />
        <add input="{HTTP_REFERER}"
               pattern="^http://blackslot.com/.*$" negate="true" />
      </conditions>
      <action type="Rewrite" url="/images/gandalf_nopuedespasar.jpg" />
</rule>

WordPress

<rule name="Wordpress"
      stopProcessing="true">

            <match url="*" />
            <conditions>
                <add input="{REQUEST_FILENAME}"
                        matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}"
                        matchType="IsDirectory" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php" />

</rule>

Symfony (producción)

<rule name="Symfony"
      stopProcessing="true">

      <match url="^(.*)$" ignoreCase="false" />
       <conditions logicalGrouping="MatchAll">
           <add input="{REQUEST_FILENAME}"
                  matchType="IsFile" negate="true" />
           <add input="{REQUEST_FILENAME}"
                   matchType="IsDirectory" negate="true" />
       </conditions>
       <action type="Rewrite" url="index.php"
                  appendQueryString="true" />

</rule>

Saludos, Asier Marqués

Nuevos servicios grid para ASP.net MVC y php bajo Windows

Publicado en Nuestros servicios en octubre 9, 2009 9:37 pm

Durante los últimos meses hemos estado preparando un servicio que nosotros mismos echábamos en falta para albergar proyectos desarrollados con las últimas tecnologías de servidor Microsoft y de programación web con asp.net y concretamente con su nuevo framework MVC.

gridsrv

Este framework permite utilizar una filosofía de desarrollo web totalmente distinta al desarrollo con web forms tradicionales, permitiendo desarrollar aplicaciones web de una forma ágil en pocos días con una arquitectura REST, como ya vienen permitiendo frameworks de tecnologías open source como Symfony, Zend Framework, Ruby on Rails, Django entre otros.

Esto abre un amplio y esperado abanico de posibilidades a desarrolladores .net que quieran un control más amplio sobre cada una de las partes de la arquitectura de su aplicación.

A pesar de su corta historia, este framework tiene ya a sus espaldas varios casos de éxito, como es por ejemplo el de StackOverflow.com, una comunidad imprescindible para todo desarrollador web.

Nuestro nuevo servicio tiene soporte nativo para este framework, además de otras características muy interesantes como bases de datos en Sql Server 2008 accesible directamente desde VisualStudio 2008 y 2010, con una serie de características simplemente excepcionales frente a su versión anterior, soporte para Silverlight 3 que presenta formas de servir contenidos multimedia de una forma nunca  antes vista, módulo de rewrite nativo de IIS7 para generar urls amigables cara al SEO de tu aplicación, totalmente compatible con reglas de Apache e integrado con las últimas versiones de muchos cms como WordPress (todo ello sin tener que instalar módulos como Isapi Rewrite).

No nos hemos olvidado de las aplicaciones php, tecnología que adoramos en Blackslot, y creemos que hemos conseguido el mejor alojamiento para las mismas bajo entornos Microsoft.

Contamos con la última versión de php (la 5.3) en la fecha de escribir este post, es una regla de oro que tenemos como prioridad de mantener, funcionando sobre fastcgi para iis7.

IIS7 ha demostrado que es capaz de superar en rendimiento a otros servidores web, de otras plataformas, sirviendo aplicaciones web php de alto tráfico como es el caso de Battle Stations.

¿Y qué hay para los no programadores o empresas que no tienen aplicaciones con estas necesidades?

Hemos pensado también en ellos, con servicios de correo como mailEnable, que permite de una forma muy eficiente disponer, además de buzones de correo, de contactos, tareas y calendarios, desde una interfaz web accesible desde cualquier navegador con un look and feel muy cuidado, sincronizable al móvil y Outlook

Nuestro panel de control plesk 9, especialmente adaptado para este servicio, hará de una forma fácil y cómoda toda la gestión de sus cuentas de correo, espacio web, dominios y todas esas cosas que crean “la magia” para que todo funcione como debe.

Este servicio lo hemos llamado Servidor Grid, ya que seguimos una arquitectura de sistemas basada en grid (de momento local en nuestro centro de datos en Madrid) sobre la cual lo hemos implementado, y lo tenéis por 12€/mes para un dominio y por 32€/mes para 10.

Por supuesto nos tenéis a vuestra disposición para atender vuestras dudas y si tenéis alguna idea o sugerencia, os falta algo en este servicio o creéis que podríamos mejorarlo de alguna forma, no dejéis de pasaros por nuestro foro de sugerencias.