diff --git a/roles/nginx/tasks/main.yml b/roles/nginx/tasks/main.yml
index 57c6cb1b51d49bf93d3b85d1a6a1b2a9f1e3f492..de4f92ec55faefeec1d117c55034f9834501d42e 100644
--- a/roles/nginx/tasks/main.yml
+++ b/roles/nginx/tasks/main.yml
@@ -1,7 +1,7 @@
 ---
 
 - name: install nginx
-  pacman: name=nginx,certbot state=present
+  pacman: name=nginx,nginx-mod-brotli,certbot state=present
 
 - name: install nginx.service snippet
   copy: src=nginx.service.d dest=/etc/systemd/system owner=root group=root mode=0644
diff --git a/roles/nginx/templates/nginx.conf.j2 b/roles/nginx/templates/nginx.conf.j2
index 0685c1965479da43e9256af578b84e4e2d849493..f00e034f17367d994ba73d7acfd2f56706be2e1d 100644
--- a/roles/nginx/templates/nginx.conf.j2
+++ b/roles/nginx/templates/nginx.conf.j2
@@ -1,5 +1,8 @@
 worker_processes  auto;
 
+load_module /usr/lib/nginx/modules/ngx_http_brotli_filter_module.so;
+load_module /usr/lib/nginx/modules/ngx_http_brotli_static_module.so;
+
 events {
     worker_connections  1024;
 }
@@ -14,6 +17,13 @@ http {
     keepalive_timeout  65;
     client_max_body_size 16M;
 
+    gzip on;
+    gzip_comp_level 6;
+    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
+
+    brotli on;
+    brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
+
     index  index.php index.html index.htm;
 
     access_log syslog:server=unix:/dev/log,nohostname,tag=nginx_http;