Last active
November 11, 2021 13:06
-
-
Save EndyKaufman/b73a2263fe748da88e5683b58dcf81e5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
map $sent_http_content_type $expires { | |
"text/html" epoch; | |
"text/html; charset=utf-8" epoch; | |
default off; | |
} | |
map $http_upgrade $connection_upgrade { | |
default upgrade; | |
'' close; | |
} | |
server { | |
listen 6060; | |
server_name localhost; | |
gzip on; | |
gzip_proxied any; | |
gzip_types text/plain application/xml text/css application/javascript application/json; | |
gzip_min_length 1000; | |
gzip_vary on; | |
gzip_disable "MSIE [1-6]\.(?!.*SV1)"; | |
client_max_body_size 20M; | |
proxy_connect_timeout 5m; | |
proxy_send_timeout 5m; | |
proxy_read_timeout 5m; | |
send_timeout 5m; | |
proxy_max_temp_file_size 0; | |
location /client { | |
expires $expires; | |
proxy_redirect off; | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_read_timeout 1m; | |
proxy_connect_timeout 1m; | |
proxy_pass http://appname-frontend-service:4200; | |
} | |
location /client/sockjs-node { | |
proxy_pass http://appname-frontend-service:4200; | |
proxy_http_version 1.1; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Connection $connection_upgrade; | |
} | |
location /api { | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_pass http://appname-backend-service:3333; | |
} | |
location /oauth { | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_pass http://appname-backend-service:3333; | |
} | |
location /auth { | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_pass http://appname-backend-service:3333; | |
} | |
location /graphql { | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_pass http://appname-backend-service:3333; | |
proxy_http_version 1.1; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Connection $connection_upgrade; | |
} | |
location / { | |
expires $expires; | |
proxy_redirect off; | |
proxy_set_header Host $host; | |
proxy_set_header Origin $http_origin; | |
proxy_set_header X-Real-IP $remote_addr; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_read_timeout 1m; | |
proxy_connect_timeout 1m; | |
try_files $uri @prerender; | |
} | |
location @prerender { | |
#proxy_set_header X-Prerender-Token YOUR_TOKEN; | |
set $prerender 0; | |
if ($http_user_agent ~* "baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|Slack-ImgProxy|Slackbot-LinkExpanding|Site Analyzer|SiteAnalyzerBot|Viber|Whatsapp|Telegram|W3C_Validator|googlebot|bingbot|yandex|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp") { | |
set $prerender 1; | |
} | |
if ($args ~ "_escaped_fragment_") { | |
set $prerender 1; | |
} | |
if ($http_user_agent ~ "Prerender") { | |
set $prerender 0; | |
} | |
if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)") { | |
set $prerender 0; | |
} | |
# resolve using Google's DNS server to force DNS resolution and prevent caching of IPs | |
# resolver 8.8.8.8; | |
if ($prerender = 1) { | |
# setting prerender as a variable forces DNS resolution since nginx caches IPs and doesnt play well with load balancing | |
# set $prerender "appname-landing-ssr-service:4200"; | |
# rewrite .* /http://$prerender$request_uri? break; | |
proxy_pass http://appname-landing-ssr-service:5000; | |
} | |
if ($prerender = 0) { | |
proxy_pass http://appname-landing-service:4200; | |
} | |
} | |
location /sockjs-node { | |
proxy_pass http://appname-landing-service:4200; | |
proxy_http_version 1.1; | |
proxy_set_header Upgrade $http_upgrade; | |
proxy_set_header Connection $connection_upgrade; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment