Skip to content

wernight/docker-trafficserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Supported tags and respective Dockerfile links

What is Apache Traffic Server

The Apache Traffic Server (ATS) is a modular, high-performance reverse proxy and forward proxy server, generally comparable to Nginx and Squid. It's used in production to serve more than 30 billion objects per day on sites like the Yahoo! homepage, and Yahoo! Sports, Mail and Finance.

Features:

An alternative is Squid which is simpler to configure but doesn't support ws://.

Usage example

$ docker run -d -p 8080:8080 wernight/trafficserver

You may run traffic_ctl command inside that container to configure it at runtime, or mount /usr/local/etc/trafficserver/records.config (there are also other configuration files).

See Traffic Server Manual for configuration optionas (by default is should have default settings with some comments).

To diagnose issues, you'll find logs under /usr/local/var/log/trafficserver/.

Forward proxy

For example to set it up as a forward proxy create and mount records.config with:

CONFIG proxy.config.url_remap.remap_required INT 0
CONFIG proxy.config.reverse_proxy.enabled INT 0

Authentication

To require authentication add to records.config:

CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.http.doc_in_cache_skip_dns INT 0

... and to remap.config something like:

map http://example.com/ http://example.com/ @plugin=authproxy.so \
    @pparam=--auth-transform=redirect @pparam=--auth-host=127.0.0.1 @pparam=--auth-port=9000

map http://127.0.0.1:9000 http://127.0.0.1:9000

... and have a server listening on http://127.0.0.1:9000 to handle authorization. For example an Nginx with a configuration like:

server {
    listen 9000;
    server_name  _;
    location / {
        auth_basic 'ALC';
        # A file created with htpasswd.
        auth_basic_user_file /var/run/secrets/proxy-passwd/passwd;
        # Just return 200 for authenticated users.
        try_files /index.html =200;
    }
}

Alternatively, you can compile a plugin like basic_auth.c available also on GitHub.

Client-side usage

Then use it for example like:

$ curl --proxy http://localhost:8080 http://example.com/

Feedbacks

Suggestions are welcome on our GitHub issue tracker.

About

Dockerized Apache Traffic Server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published