#user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
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"';

    log_format post  '"$http_x_forwarded_for" - "$status" - "$request" - "$request_body"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        off;
    #tcp_nopush     on;

    keepalive_timeout  65;

    server_tokens off;

    #gzip  on;

    server_names_hash_bucket_size 128;
	
	# Nginx of site responsive
	server {
	  
		listen PORT;
		server_name  VIRTUALHOST;
		root         /var/www/esfera;
	 
                                location ^~ /esfera-travels/flights/ {
                                      access_log  /var/log/nginx/flights-access.log  post;
                                      error_log  /var/log/nginx/flights-error.log warn;
                                      proxy_pass          https://u5nd5567n6.execute-api.sa-east-1.amazonaws.com/esf_qa/;
                                      proxy_read_timeout  35;
				                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/drupal-api/ {
                                      access_log  /var/log/nginx/drupal-access.log  post;
                                      error_log  /var/log/nginx/drupal-error.log warn;
                                      proxy_pass          https://kf87zame82.execute-api.sa-east-1.amazonaws.com/esf_prd/;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/locations/ {
                                      access_log  /var/log/nginx/locations-access.log  post;
                                      error_log  /var/log/nginx/locations-error.log warn;
                                      proxy_pass          https://qh1tpxlq13.execute-api.sa-east-1.amazonaws.com/esf_qa/;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
								location ^~ /esfera-travels/road/locations {
                                      access_log  /var/log/nginx/locations-access.log  post;
                                      error_log  /var/log/nginx/locations-error.log warn;
                                      proxy_pass          https://bff-loyalty-esfera.k8s-qa-cvc.com.br/esfera/road/locations;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/hotels/ {
                                      access_log  /var/log/nginx/hotels-access.log  post;
                                      error_log  /var/log/nginx/hotels-error.log warn;
                                      proxy_pass          https://ec13hgdmac.execute-api.sa-east-1.amazonaws.com/esf_qa/;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/cars/ {
                                      access_log  /var/log/nginx/cars-access.log  post;
                                      error_log  /var/log/nginx/cars-error.log warn;
                                      proxy_pass          https://e0zqmdnlma.execute-api.sa-east-1.amazonaws.com/esf_qa/;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/orders/orders {
                                      access_log  /var/log/nginx/orders-access.log  post;
                                      error_log  /var/log/nginx/orders-error.log warn;
                                      proxy_pass          https://apihom.services.cvc.com.br/bff-loyalty-esfera/loyalty/esfera;
                                      proxy_read_timeout  120;
									  proxy_set_header X-API-Key  "2de66579-a07d-4739-bfe5-885e109f87dc";
                                      proxy_ssl_server_name on;
                                }
                                location ^~ /esfera-travels/proxy/ {
                                      access_log  /var/log/nginx/login-access.log  post;
                                      error_log  /var/log/nginx/login-error.log warn;
                                      proxy_pass          https://4qiuspb9i6.execute-api.sa-east-1.amazonaws.com/esf_qa/;
                                      proxy_read_timeout  35;
                                      proxy_set_header X-API-Key  "42fTI7xqje8BaO2c1rM9N6s8a8goCUaE5Y5bDhPD";
                                      proxy_ssl_server_name on;
				}

			location ~^/$ {
				try_files $uri $uri/home/index.html;
			}
			location ~^/assets(.*) {
				try_files $uri /home/assets$1;
			}
			location ~^/[a-zA-Z-_]+/$ {
				try_files $uri /home/index.html;
			}
			location ~^/([a-zA-Z-_]+)/.+ {
				try_files $uri /$1/index.html;
			}
			location ~^/([a-zA-Z-_]+).+ {
				try_files $uri /$1/index.html /home/index.html;
			}
		    
			location  ~* \.(eot|ttf|woff|woff2)$ {
				if ($request_method = 'OPTIONS') {
					add_header 'Access-Control-Allow-Origin' '*';
					#
					# Om nom nom cookies
					#
					add_header 'Access-Control-Allow-Credentials' 'true';
					add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
					#
					# Custom headers and headers various browsers *should* be OK with but aren't
					#
					add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
					#
					# Tell client that this pre-flight info is valid for 20 days
					#
					add_header 'Access-Control-Max-Age' 1728000;
					add_header 'Content-Type' 'text/plain charset=UTF-8';
					add_header 'Content-Length' 0;
					return 204;
				}
				if ($request_method = 'POST') {
					add_header 'Access-Control-Allow-Origin' '*';
					add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
					add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
					add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
				}
				if ($request_method = 'GET') {
					add_header 'Access-Control-Allow-Origin' '*';
					add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
					add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
					add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
				}
			
		}
	}
	
	##
	# `gzip` Settings
	#
	#
	gzip on;
	gzip_disable "msie6";

	gzip_vary on;
	gzip_proxied any;
	gzip_comp_level 6;
	gzip_http_version 1.1;
	gzip_min_length 256;
	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
	
}

#author @dTagliari
