Fixes for Reverse Proxy Go-Live (#6)
* Add new area for defining upstream systems. * Example file for demonstration domain. * Use the new upstream hosts section. * Do the proxy directives in the main file. * Commit any final changes. * Fix example resource name. * Mention the need to have ports specified in the upstream file, not server block. * Adjust formatting.
This commit is contained in:
parent
7d540e81a4
commit
3c46dfec01
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,6 +10,7 @@ logs/*
|
|||||||
# Ignore private reverse proxy configurations.
|
# Ignore private reverse proxy configurations.
|
||||||
Config/ReverseProxy/config/conf.d/*.*
|
Config/ReverseProxy/config/conf.d/*.*
|
||||||
Config/ReverseProxy/config/html/*.*
|
Config/ReverseProxy/config/html/*.*
|
||||||
|
Config/ReverseProxy/config/hosts/*.*
|
||||||
|
|
||||||
# Ignore MailServer Files
|
# Ignore MailServer Files
|
||||||
Config/MailServer/setup.sh
|
Config/MailServer/setup.sh
|
||||||
|
@ -18,3 +18,9 @@ RUN rm -rfv /etc/nginx/html
|
|||||||
# Add any static HTML websites.
|
# Add any static HTML websites.
|
||||||
COPY ./config/html /etc/nginx/html
|
COPY ./config/html /etc/nginx/html
|
||||||
RUN rm -rfv /etc/nginx/html/README*
|
RUN rm -rfv /etc/nginx/html/README*
|
||||||
|
|
||||||
|
## Upstream Hosts ##
|
||||||
|
RUN rm -rfv /etc/nginx/hosts
|
||||||
|
COPY ./config/hosts /etc/nginx/hosts
|
||||||
|
RUN rm -rfv /etc/nginx/hosts/README*
|
||||||
|
|
||||||
|
@ -38,13 +38,6 @@ server {
|
|||||||
|
|
||||||
# Send traffic to upstream server
|
# Send traffic to upstream server
|
||||||
location / {
|
location / {
|
||||||
proxy_set_header X-Forwarded-Proto https;
|
|
||||||
|
|
||||||
# These cause "400 Bad Request Request Header Or Cookie Too Large"?
|
|
||||||
#proxy_set_header Host $host;
|
|
||||||
#proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
|
|
||||||
## General format is PROTOCOL://SERVER:PORT. For example:
|
## General format is PROTOCOL://SERVER:PORT. For example:
|
||||||
#
|
#
|
||||||
# If using a domain name:
|
# If using a domain name:
|
||||||
@ -53,6 +46,9 @@ server {
|
|||||||
# If using an IP address:
|
# If using an IP address:
|
||||||
#proxy_pass http://192.168.1.80:8080;
|
#proxy_pass http://192.168.1.80:8080;
|
||||||
#
|
#
|
||||||
|
# If using an upstream server:
|
||||||
|
#proxy_pass http://example-proxy-site;
|
||||||
|
#
|
||||||
# If forwarding to an external source:
|
# If forwarding to an external source:
|
||||||
#proxy_pass https://website.name;
|
#proxy_pass https://website.name;
|
||||||
#
|
#
|
||||||
|
3
Config/ReverseProxy/config/hosts/README.md
Normal file
3
Config/ReverseProxy/config/hosts/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Upstream Host Configuration
|
||||||
|
For systems which do not resolve well such as ignoring `/etc/hosts`.
|
||||||
|
|
8
Config/ReverseProxy/config/hosts/example.com
Normal file
8
Config/ReverseProxy/config/hosts/example.com
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Local servers for everything related to `example.com`.
|
||||||
|
# If specific ports are needed they will go here instead of the `conf.d` file(s).
|
||||||
|
|
||||||
|
upstream example-proxy-site {
|
||||||
|
#server 127.0.0.1:8080;
|
||||||
|
server hyperling.com;
|
||||||
|
}
|
||||||
|
|
@ -14,7 +14,7 @@ http {
|
|||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
log_format main '$remote_addr - $remote_user [$time_local] $host "$request" '
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
@ -27,6 +27,27 @@ http {
|
|||||||
|
|
||||||
#gzip on;
|
#gzip on;
|
||||||
|
|
||||||
|
## Proxy Settings ##
|
||||||
|
proxy_redirect off;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
proxy_set_header HTTP_AUTHORIZATION $http_authorization;
|
||||||
|
proxy_hide_header X-Powered-By;
|
||||||
|
proxy_intercept_errors on;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
# Proxy Buffer settings - See http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size
|
||||||
|
proxy_buffer_size 4k;
|
||||||
|
proxy_buffers 4 32k;
|
||||||
|
proxy_busy_buffers_size 64k;
|
||||||
|
proxy_temp_file_write_size 64k;
|
||||||
|
# Timeouts, give up to 5 minutes for slow apps.
|
||||||
|
proxy_connect_timeout 600;
|
||||||
|
proxy_send_timeout 600;
|
||||||
|
proxy_read_timeout 600;
|
||||||
|
send_timeout 600;
|
||||||
|
|
||||||
## LetsEncrypt Certbot Setup ##
|
## LetsEncrypt Certbot Setup ##
|
||||||
# Allow nginx to fulfill LetsEncrypt Certbot challenges.
|
# Allow nginx to fulfill LetsEncrypt Certbot challenges.
|
||||||
server {
|
server {
|
||||||
@ -35,6 +56,9 @@ http {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
## Upstream Configuration ##
|
||||||
|
include /etc/nginx/hosts/*;
|
||||||
|
|
||||||
## Reverse Proxied Website Configurations ##
|
## Reverse Proxied Website Configurations ##
|
||||||
include /etc/nginx/conf.d/*;
|
include /etc/nginx/conf.d/*;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user