Apache Web-Proxy
Es muss nicht immer Squid sein! Auch mit Apache kann man einen Web-Proxy einrichten.
#
# Build and maintain a Web-Proxy based on Apache
#
{% set port = 8045 %}
apache-packages:
pkg.installed:
- pkgs:
- apache2
- apache2-utils
- libapache2-mod-authnz-external
- pwauth
{% for module in ['proxy','proxy_connect','proxy_http'] %}
enable-mod-{{ module }}:
apache_module.enabled:
- name: {{ module }}
- require:
- pkg: apache-packages
{% endfor %}
Disable default site:
apache_site.disabled:
- name: 000-default
#
# Disable Port 80. We don't serve content with Apache
#
Enable Port {{port}}:
file.append:
- name: /etc/apache2/ports.conf
- text: Listen {{port}}
Disable Port 80:
file.replace:
- name: /etc/apache2/ports.conf
- pattern: ^Listen 80$
- repl: >-
#Listen 80
#
# Copy a proxy config. The build-in state
# https://docs.saltproject.io/en/latest/ref/states/all/salt.states.apache.html
# cannot handle proxy configurations
#
/etc/apache2/sites-available/proxy.conf:
file.managed:
- source: salt://apache-proxy/proxy.conf
- template: jinja
- defaults:
port: {{port}}
Enable proxy:
apache_site.enabled:
- name: proxy
apache2:
service.running:
- enable: True
- watch:
- file: /etc/apache2/sites-available/proxy.conf
- file: /etc/apache2/ports.confLast updated