diff --git a/global/customs/yoast-seo.conf b/global/customs/yoast-seo.conf new file mode 100644 index 0000000..ccbb3d6 --- /dev/null +++ b/global/customs/yoast-seo.conf @@ -0,0 +1,16 @@ +#Yoast sitemap +rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last; +rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last; + +location ~ ([^/]*)sitemap(.*).x(m|s)l$ { + rewrite ^/sitemap.xml$ /sitemap_index.xml permanent; + rewrite ^/([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 last; + rewrite ^/sitemap_index.xml$ /index.php?sitemap=1 last; + rewrite ^/([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 last; + ## following lines are options. Needed for wordpress-seo addons + rewrite ^/news_sitemap.xml$ /index.php?sitemap=wpseo_news last; + rewrite ^/locations.kml$ /index.php?sitemap=wpseo_local_kml last; + rewrite ^/geo_sitemap.xml$ /index.php?sitemap=wpseo_local last; + rewrite ^/video-sitemap.xsl$ /index.php?xsl=video last; + access_log off; +} \ No newline at end of file diff --git a/global/mime-types.conf b/global/mime-types.conf index 4c3bd36..37140ed 100644 --- a/global/mime-types.conf +++ b/global/mime-types.conf @@ -23,7 +23,6 @@ types { image/svg+xml svg svgz; image/webp webp; - application/font-woff woff; application/java-archive jar war ear; application/json json; application/mac-binhex40 hqx; @@ -33,7 +32,6 @@ types { application/rtf rtf; application/vnd.apple.mpegurl m3u8; application/vnd.ms-excel xls; - application/vnd.ms-fontobject eot; application/vnd.ms-powerpoint ppt; application/vnd.wap.wmlc wmlc; application/vnd.google-earth.kml+xml kml; @@ -85,4 +83,10 @@ types { video/x-ms-asf asx asf; video/x-ms-wmv wmv; video/x-msvideo avi; -} \ No newline at end of file + + application/x-font-ttf ttc ttf; + application/x-font-otf otf; + application/font-woff woff; + application/font-woff2 woff2; + application/vnd.ms-fontobject eot; +} diff --git a/global/php-pool.conf b/global/php-pool.conf index 6abdb9c..e16b834 100644 --- a/global/php-pool.conf +++ b/global/php-pool.conf @@ -1,12 +1,12 @@ # Upstream to abstract backend connection(s) for PHP. # Additional upstreams can be added to /etc/nginx/upstreams/*.conf and then you just -# change `default php71` to whatever the new upstream is (could be php70 for example). -upstream php71 { - server unix:/run/php/php7.1-fpm.sock; +# change `default php73` to whatever the new upstream is (could be php70 for example). +upstream php73 { + server unix:/run/php/php7.3-fpm.sock; } include /etc/nginx/upstreams/*.conf; map '' $upstream { - default php71; + default php73; } \ No newline at end of file diff --git a/global/server/fastcgi-cache.conf b/global/server/fastcgi-cache.conf index 14d0d7f..fc62848 100644 --- a/global/server/fastcgi-cache.conf +++ b/global/server/fastcgi-cache.conf @@ -32,3 +32,13 @@ if ($request_uri ~* "/wp-admin/|/wp-json/|/xmlrpc.php|wp-.*.php|/feed/|index.php if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; } + +# Skip cache on WooCommerce pages (no contempla urls con localización) +if ($request_uri ~* "/store.*|/carrito.*|/mi-cuenta.*|/cart.*|/my-account.*|/checkout.*|/addons.*") { + set $skip_cache 1; +} + +# Skip cache for WooCommerce query string +if ( $arg_add-to-cart != "" ) { + set $skip_cache 1; +} \ No newline at end of file diff --git a/modules-enabled/.gitignore b/modules-enabled/.gitignore new file mode 100644 index 0000000..0664296 --- /dev/null +++ b/modules-enabled/.gitignore @@ -0,0 +1,2 @@ +# Ignore everything in modules-enabled directory +/* \ No newline at end of file diff --git a/sites-available/multisite-subdirectory.com b/sites-available/multisite-subdirectory.com deleted file mode 100644 index 9719663..0000000 --- a/sites-available/multisite-subdirectory.com +++ /dev/null @@ -1,49 +0,0 @@ -server { - # Ports to listen on - listen 80; - listen [::]:80; - - # Server name to listen for - server_name multisite-subdirectory.com; - - # Path to document root - root /sites/multisite-subdirectory.com/public; - - # File to be used as index - index index.php; - - # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/multisite-subdirectory.com/logs/access.log; - error_log /sites/multisite-subdirectory.com/logs/error.log; - - # Default server block rules - include global/server/defaults.conf; - - # Multisite subdirectory install - include global/server/multisite-subdirectory.conf; - - location / { - try_files $uri $uri/ /index.php?$args; - } - - location ~ \.php$ { - try_files $uri =404; - include global/fastcgi-params.conf; - - # Use the php pool defined in the upstream variable. - # See global/php-pool.conf for definition. - fastcgi_pass $upstream; - } - - # Rewrite robots.txt - rewrite ^/robots.txt$ /index.php last; -} - -# Redirect www to non-www -server { - listen 80; - listen [::]:80; - server_name www.multisite-subdirectory.com; - - return 301 $scheme://multisite-subdirectory.com$request_uri; -} \ No newline at end of file diff --git a/sites-available/ssl-fastcgi-cache.com b/sites-available/ssl-fastcgi-cache.com deleted file mode 100644 index 9053d73..0000000 --- a/sites-available/ssl-fastcgi-cache.com +++ /dev/null @@ -1,85 +0,0 @@ -# Define path to cache and memory zone. The memory zone should be unique. -# keys_zone=ssl-fastcgi-cache.com:100m creates the memory zone and sets the maximum size in MBs. -# inactive=60m will remove cached items that haven't been accessed for 60 minutes or more. -fastcgi_cache_path /sites/ssl-fastcgi-cache.com/cache levels=1:2 keys_zone=ssl-fastcgi-cache.com:100m inactive=60m; - -server { - # Ports to listen on, uncomment one. - listen 443 ssl http2; - listen [::]:443 ssl http2; - - # Server name to listen for - server_name ssl-fastcgi-cache.com; - - # Path to document root - root /sites/ssl-fastcgi-cache.com/public; - - # Paths to certificate files. - ssl_certificate /etc/letsencrypt/live/ssl-fastcgi-cache.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/ssl-fastcgi-cache.com/privkey.pem; - - # File to be used as index - index index.php; - - # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/ssl-fastcgi-cache.com/logs/access.log; - error_log /sites/ssl-fastcgi-cache.com/logs/error.log; - - # Default server block rules - include global/server/defaults.conf; - - # Fastcgi cache rules - include global/server/fastcgi-cache.conf; - - # SSL rules - include global/server/ssl.conf; - - location / { - try_files $uri $uri/ /index.php?$args; - } - - location ~ \.php$ { - try_files $uri =404; - include global/fastcgi-params.conf; - - # Use the php pool defined in the upstream variable. - # See global/php-pool.conf for definition. - fastcgi_pass $upstream; - - # Skip cache based on rules in global/server/fastcgi-cache.conf. - fastcgi_cache_bypass $skip_cache; - fastcgi_no_cache $skip_cache; - - # Define memory zone for caching. Should match key_zone in fastcgi_cache_path above. - fastcgi_cache ssl-fastcgi-cache.com; - - # Define caching time. - fastcgi_cache_valid 60m; - } - - # Rewrite robots.txt - rewrite ^/robots.txt$ /index.php last; - - # Uncomment if using the fastcgi_cache_purge module and Nginx Helper plugin (https://wordpress.org/plugins/nginx-helper/) - # location ~ /purge(/.*) { - # fastcgi_cache_purge ssl-fastcgi-cache.com "$scheme$request_method$host$1"; - # } -} - -# Redirect http to https -server { - listen 80; - listen [::]:80; - server_name ssl-fastcgi-cache.com www.ssl-fastcgi-cache.com; - - return 301 https://ssl-fastcgi-cache.com$request_uri; -} - -# Redirect www to non-www -server { - listen 443; - listen [::]:443; - server_name www.ssl-fastcgi-cache.com; - - return 301 https://ssl-fastcgi-cache.com$request_uri; -} \ No newline at end of file diff --git a/sites-available/ssl.com b/sites-available/ssl.com deleted file mode 100644 index edf8864..0000000 --- a/sites-available/ssl.com +++ /dev/null @@ -1,62 +0,0 @@ -server { - # Ports to listen on, uncomment one. - listen 443 ssl http2; - listen [::]:443 ssl http2; - - # Server name to listen for - server_name ssl.com; - - # Path to document root - root /sites/ssl.com/public; - - # Paths to certificate files. - ssl_certificate /etc/letsencrypt/live/ssl.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/ssl.com/privkey.pem; - - # File to be used as index - index index.php; - - # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/ssl.com/logs/access.log; - error_log /sites/ssl.com/logs/error.log; - - # Default server block rules - include global/server/defaults.conf; - - # SSL rules - include global/server/ssl.conf; - - location / { - try_files $uri $uri/ /index.php?$args; - } - - location ~ \.php$ { - try_files $uri =404; - include global/fastcgi-params.conf; - - # Use the php pool defined in the upstream variable. - # See global/php-pool.conf for definition. - fastcgi_pass $upstream; - } - - # Rewrite robots.txt - rewrite ^/robots.txt$ /index.php last; -} - -# Redirect http to https -server { - listen 80; - listen [::]:80; - server_name ssl.com www.ssl.com; - - return 301 https://ssl.com$request_uri; -} - -# Redirect www to non-www -server { - listen 443; - listen [::]:443; - server_name www.ssl.com; - - return 301 https://ssl.com$request_uri; -} diff --git a/sites-available/multisite-subdomain.com b/templates/envoyer similarity index 61% rename from sites-available/multisite-subdomain.com rename to templates/envoyer index dd48dc7..bfc023f 100644 --- a/sites-available/multisite-subdomain.com +++ b/templates/envoyer @@ -4,17 +4,17 @@ server { listen [::]:80; # Server name to listen for - server_name multisite-subdomain.com *.multisite-subdomain.com; + server_name {domain} www.{domain}; # Path to document root - root /sites/multisite-subdomain.com/public; + root {path}/current/public; # File to be used as index index index.php; # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/multisite-subdomain.com/logs/access.log; - error_log /sites/multisite-subdomain.com/logs/error.log; + access_log {path}/logs/access.log; + error_log {path}/logs/error.log; # Default server block rules include global/server/defaults.conf; @@ -34,13 +34,4 @@ server { # Rewrite robots.txt rewrite ^/robots.txt$ /index.php last; -} - -# Redirect www to non-www -server { - listen 80; - listen [::]:80; - server_name www.multisite-subdomain.com; - - return 301 $scheme://multisite-subdomain.com$request_uri; } \ No newline at end of file diff --git a/sites-available/singlesite.com b/templates/wordpress similarity index 66% rename from sites-available/singlesite.com rename to templates/wordpress index cca3038..5aa6fca 100644 --- a/sites-available/singlesite.com +++ b/templates/wordpress @@ -4,17 +4,17 @@ server { listen [::]:80; # Server name to listen for - server_name singlesite.com; + server_name {domain} www.{domain}; # Path to document root - root /sites/singlesite.com/public; + root {path}/public; # File to be used as index index index.php; # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/singlesite.com/logs/access.log; - error_log /sites/singlesite.com/logs/error.log; + access_log {path}/logs/access.log; + error_log {path}/logs/error.log; # Default server block rules include global/server/defaults.conf; @@ -35,12 +35,3 @@ server { # Rewrite robots.txt rewrite ^/robots.txt$ /index.php last; } - -# Redirect www to non-www -server { - listen 80; - listen [::]:80; - server_name www.singlesite.com; - - return 301 $scheme://singlesite.com$request_uri; -} \ No newline at end of file diff --git a/sites-available/fastcgi-cache.com b/templates/wordpress-cache similarity index 66% rename from sites-available/fastcgi-cache.com rename to templates/wordpress-cache index 851a667..0be933c 100644 --- a/sites-available/fastcgi-cache.com +++ b/templates/wordpress-cache @@ -1,7 +1,7 @@ # Define path to cache and memory zone. The memory zone should be unique. -# keys_zone=fastcgi-cache.com:100m creates the memory zone and sets the maximum size in MBs. +# keys_zone={domain}:100m creates the memory zone and sets the maximum size in MBs. # inactive=60m will remove cached items that haven't been accessed for 60 minutes or more. -fastcgi_cache_path /sites/fastcgi-cache.com/cache levels=1:2 keys_zone=fastcgi-cache.com:100m inactive=60m; +fastcgi_cache_path {path}/cache levels=1:2 keys_zone={domain}:100m inactive=60m; server { # Ports to listen on @@ -9,17 +9,17 @@ server { listen [::]:80; # Server name to listen for - server_name fastcgi-cache.com; + server_name {domain} www.{domain}; # Path to document root - root /sites/fastcgi-cache.com/public; + root {path}/public; # File to be used as index index index.php; # Overrides logs defined in nginx.conf, allows per site logs. - access_log /sites/fastcgi-cache.com/logs/access.log; - error_log /sites/fastcgi-cache.com/logs/error.log; + access_log {path}/logs/access.log; + error_log {path}/logs/error.log; # Default server block rules include global/server/defaults.conf; @@ -44,7 +44,7 @@ server { fastcgi_no_cache $skip_cache; # Define memory zone for caching. Should match key_zone in fastcgi_cache_path above. - fastcgi_cache fastcgi-cache.com; + fastcgi_cache {domain}; # Define caching time. fastcgi_cache_valid 60m; @@ -55,15 +55,6 @@ server { # Uncomment if using the fastcgi_cache_purge module and Nginx Helper plugin (https://wordpress.org/plugins/nginx-helper/) # location ~ /purge(/.*) { - # fastcgi_cache_purge fastcgi-cache.com "$scheme$request_method$host$1"; + # fastcgi_cache_purge {domain} "$scheme$request_method$host$1"; # } } - -# Redirect www to non-www -server { - listen 80; - listen [::]:80; - server_name www.fastcgi-cache.com; - - return 301 $scheme://fastcgi-cache.com$request_uri; -} \ No newline at end of file