{% set header_res = {'add_header': 'add_header', 'proxy_set_header': 'proxy_set_header', 'proxy_hide_header': 'proxy_hide_header'} %}

{{lang.words.add|title()}} proxy pass

{{lang.words.select|title()}} {{lang.words.w_a}} {{lang.words.server}}: {{ select('serv1', name='server', values=g.user_params['servers'], is_servers='true', by_id='true') }}
{{lang.words.note|title()}}: {{lang.phrases.master_slave}}
Proxy pass is an Nginx directive that forwards incoming client requests to a specified backend server (like Apache, Node.js, or a microservice) and relays the response back to the client. It supports protocols like HTTP, HTTPS, WebSocket, and gRPC, making it versatile for reverse proxying. Key parameters include:

Header control: Uses proxy_set_header to forward client IP (X-Real-IP) or protocol (X-Forwarded-Proto).

Timeouts: Timeouts (proxy_connect_timeout).

(Summary: It’s the backbone of Nginx reverse proxying, handling routing, balancing, and security.)
{{lang.words.name|title()}}: {{ input('proxy_pass', name='name', title="Domain name or IP", placeholder="example.com", required='required') }}
{{lang.words.name|title()}} alias:
HTTP {{lang.words.scheme|title()}}: {% set scheme_params={'http': 'HTTP', 'https': 'HTTPS'} %} {{ select('scheme', values=scheme_params, selected='http', required='required', class='force_close') }}

{{lang.words.port|title()}}: {{ input('port', name='port', title='Port to bind', placeholder="80", required='required', type='number', style='width: 40px;') }}
Location:

{{ input('location', name='location', title="Location", value="/", required='required') }}

Proxy connect timeout: {{ input('proxy_connect_timeout', name='proxy_connect_timeout', title='Proxy connect timeout', value="60", type='number', style='width: 40px;') }}
Proxy read timeout: {{ input('proxy_read_timeout', name='proxy_read_timeout', title='Proxy read timeout', value="60", type='number', style='width: 40px;') }}
Proxy send timeout: {{ input('proxy_send_timeout', name='proxy_send_timeout', title='Proxy send timeout', value="60", type='number', style='width: 40px;') }}

{{lang.words.headers|title()}}:


Upstream: {{ input('proxy_pass-upstream', name='upstream', placeholder='upstream_config') }}
{{lang.words.note|title()}}: {{lang.add_nginx_page.desc.def_backend}}, {{lang.add_nginx_page.desc.def_backend_exit}}.

{{ lang.words.security|title() }}:
{% set enable_sec_headers = lang.words.enable|title() + ' ' + lang.words.security + ' ' + lang.words.headers %}

{{ checkbox('hide_server_tokens', title=lang.add_page.desc.hide_server_tokens, desc=lang.phrases.hide_server_tokens, checked='checked') }}

{{ checkbox('security_headers', title=lang.add_page.desc.security_headers, desc=lang.phrases.security_headers, checked='checked') }}

{{ lang.words.compression|title() }}: {{ checkbox('compression', title=lang.add_page.desc.http_compression, value='true', desc=lang.words.compression|title()) }}
{{lang.words.add|title()}} {{lang.words.generate|title()}} {{lang.words.config}}