Wordpress Secure Login Redirect
genarg
nginx-forum at nginx.us
Mon Jul 25 14:14:39 UTC 2011
Hi. I wanted to enable ssl on nginx for using to login to wordpress and
the admin panel.
I have a ssl certifcate that uses secure.DOMAIN.com. My Wordpress
configuration is with Network enabled.
http://codex.wordpress.org/Create_A_Network#Apache_Virtual_Hosts_and_Mod_Rewrite.
The website works like this:
www.DOMAIN.com (Main blog, points to others blogs)
subdomain1.DOMAIN.com (blog 1)
sub2.DOMAIN.com (blog 2)
What I want to force is a secure SSL connection for login in and
administration for each subdomain.
http://codex.wordpress.org/Administration_Over_SSL
How do I change the configuration in nginx to work like that?
Here is my current nginx.conf and website.conf files.
nginx.conf file:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local]
"$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush off;
tcp_nodelay on;
keepalive_timeout 30;
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 12M;
large_client_header_buffers 2 1k;
gzip on;
gzip_comp_level 2;
gzip_http_version 1.1;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css image/x-icon image/png image/jpg
image/jpeg text/js text/php application/xhtml application/xhtml+xml;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6].(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
}
website.conf file:
server {
server_name www.domain.com secure.domain.com *.domain.com;
root /www/domain.com;
index index.php index.html;
error_page 404 = @wordpress;
log_not_found off;
location ^~ /files/ {
rewrite /files/(.+) /wp-includes/ms-files.php?file=$1 last;
}
location @wordpress {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
include fastcgi_params;
fastcgi_param SCRIPT_NAME /index.php;
}
# Rewrite minified CSS and JS files
rewrite
^/wp-content/w3tc/min/([a-f0-9]+)\/(.+)\.(include(\-(footer|body))?(-nb)?)\.[0-9]+\.(css|js)$
/wp-content/w3tc/min/index.php?tt=$1&gg=$2&g=$3&t=$7 last;
set $cache_uri $request_uri;
if ($request_method = POST) {
set $cache_uri 'no cache';
}
if ($query_string != "") {
set $cache_uri 'no cache';
}
if ($request_uri ~*
"(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php|wp\-comments\-popup\.php|wp\-links\-opml\.php|wp\-locations\.php)")
{
set $cache_uri "no cache";
}
if ($http_cookie ~*
"comment_author|wordpress_[a-f0-9]+|wp\-postpass|wordpress_logged_in")
{
set $cache_uri 'no cache';
}
location / {
try_files /wp-content/w3tc/pgcache/$cache_uri/_index.html $uri
$uri/ /index.php;
}
location ~*
\.(xml|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$
{
try_files $uri =404;
expires max;
access_log off;
}
location ~* /\.ht {
deny all;
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri @wordpress;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ^~ /blogs.dir/ {
internal;
root /home/domain.com/wp-content;
}
}
server {
listen 443;
server_name www.domain.com secure.domain.com *.domain.com;
ssl on;
ssl_certificate /etc/ssl/domain_com/domain_com.crt;
ssl_certificate_key /etc/ssl/domain_com/domain_com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,212916,212916#msg-212916
More information about the nginx
mailing list