Archive for the ‘Nginx’ Category.
March 27, 2011, 10:28 pm
Como un simple ayudamemoria, la configuración que estoy utilizando en mi wordpress + nginx es la siguiente.
En vez de las urls por defecto que utiliza WordPress ej: http://ngen.com.ar/blog/?p=23 podemos utilizar las mas utilizadas hoy en dia con el nombre completo del post en la url.
Para eso deben activar dentro del panel de WordPress en la sección “Permalinks” utilizo la variable /%postname%.
Sólo queda modificar el VirtualHost del nginx para que funcione.
Reiniciar nginx y verificar que los posts ahora se navegan desde urls que incluyen el nombre del post.
1
2
3
4
5
6
7
8
| location /blog {
root /var/www/ngen.com.ar;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /blog/index.php?q=$1 last;
break;
}
} |
location /blog {
root /var/www/ngen.com.ar;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /blog/index.php?q=$1 last;
break;
}
}
January 9, 2011, 3:14 am
Es importante poder acceder al administrador de wordpress mediante https, nos garantiza que cuando hacemos login nuestro user & pass no van en texto plano hasta el servidor.
En mi blog, que utilizo wordpress + nginx y debo asegurarme que todo funcione perfectemente; Desde la versión 3.x de Wordpres ha cambiado el método a utilizar, a pesar de que aún la documentación oficial [0] es vieja y no tiene aplicación hoy en dia, les daré algunos tips para poder publicar el /wp-admin sobre ssl y con nginx como webserver.
wp-includes/default-constants.php
El archivo implicado, en mi caso el path es: /var/www/ngen.com.ar/blog/wp-includes/default-constants.php donde deben buscar el valor define(‘FORCE_SSL_ADMIN’, false); y cambiarlo a true.
1
2
3
| if ( !defined('FORCE_SSL_ADMIN') )
define('FORCE_SSL_ADMIN', true);
force_ssl_admin(FORCE_SSL_ADMIN); |
if ( !defined('FORCE_SSL_ADMIN') )
define('FORCE_SSL_ADMIN', true);
force_ssl_admin(FORCE_SSL_ADMIN);
Importante!
Cada vez que actualizen WordPress desde el dashboard este archivo se sobreescribe con la configuración por defecto que es “false”, asi que deben volver a editarlo y cambiar el valor para aplicar nuevamente los cambios.
Configuración nginx
No voy a explicar aqui cómo es la configuración global de nginx y dado que publico mi blog como /blog en nginx la configuración es asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| location /blog {
root /var/www/ngen.com.ar;
index index.php;
}
access_log /var/log/nginx/blog.access.log;
error_log /var/log/nginx/blog.error.log;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/ngen.com.ar/blog$fastcgi_script_name;
include fastcgi_params;
}
# rewrite wp-admin to https
location ~ wp-login.php$ {
rewrite ^/wp-login.php(.*)$ https://$host/$1 last;
} |
location /blog {
root /var/www/ngen.com.ar;
index index.php;
}
access_log /var/log/nginx/blog.access.log;
error_log /var/log/nginx/blog.error.log;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/ngen.com.ar/blog$fastcgi_script_name;
include fastcgi_params;
}
# rewrite wp-admin to https
location ~ wp-login.php$ {
rewrite ^/wp-login.php(.*)$ https://$host/$1 last;
}
No tiene nada fuera de lo común, salvo las lineas donde especifico con rewrite que todo lo que sea ^/wp-login.php lo envié al mismo host pero bajo https.
Tambien debemos configurar el mismo virtualhost en nignx pero con el puerto 443 que en este caso los datos incorporan mas información.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
access_log /var/log/nginx/wp-admin.access.log;
error_log /var/log/nginx/wp.admin.error.log;
location /blog {
alias /var/www/ngen.com.ar/blog;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/ngen.com.ar/blog$fastcgi_script_name;
include fastcgi_params;
} |
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
access_log /var/log/nginx/wp-admin.access.log;
error_log /var/log/nginx/wp.admin.error.log;
location /blog {
alias /var/www/ngen.com.ar/blog;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/ngen.com.ar/blog$fastcgi_script_name;
include fastcgi_params;
}
Eso es todo, desde ahora cada vez que quiero acceder al admin del wordpress desde http://ngen.com.ar/blog/wp-admin me redirecciona automáticamente hacia https://ngen.com.ar/blog/wp-admin/
[0] http://codex.wordpress.org/Administration_Over_SSL
March 22, 2010, 6:17 am
Todo sysadmin que comienza a trabajar con nginx tiene como primera duda y consiguiente tarea, dar soporte a sitios publicados con php.
Una característica importante en el diseño de nginx es la seguridad, razón por la cual no tiene soporte nativo para cgi, sea del lenguaje que sea (perl, php, python, etc).
Es alli donde entran en combinación soluciones externas para esta tarea, la mas utilizada es spawn-fcgi que es un desarrollo de la misma gente que hace lighttpd.
Al realizar la búsqueda para realizar lo que necesitamos, tenemos muchas probabilidades de llegar a la documentación de Linode (conocido proveedor de VPS) para ser mas exactos a este link:
http://library.linode.com/web-servers/nginx/php-fastcgi/debian-5-lenny
Continue reading ‘Nginx: nginx + PHP-FastCGI en Debian Lenny’ »