152 lines
3.5 KiB
Nginx Configuration File
152 lines
3.5 KiB
Nginx Configuration File
worker_processes 1;
|
|
pid /tmp/nginx.pid;
|
|
error_log /dev/stderr warn;
|
|
|
|
events {
|
|
worker_connections 256;
|
|
}
|
|
|
|
http {
|
|
include /etc/nginx/mime.types;
|
|
default_type application/octet-stream;
|
|
|
|
access_log /dev/stdout;
|
|
server_tokens off;
|
|
sendfile on;
|
|
tcp_nopush on;
|
|
keepalive_timeout 15s;
|
|
client_max_body_size 1k;
|
|
|
|
client_body_temp_path /tmp/client_temp;
|
|
proxy_temp_path /tmp/proxy_temp;
|
|
fastcgi_temp_path /tmp/fastcgi_temp;
|
|
uwsgi_temp_path /tmp/uwsgi_temp;
|
|
scgi_temp_path /tmp/scgi_temp;
|
|
|
|
# Redirect all 404 responses, including upstream errors.
|
|
proxy_intercept_errors on;
|
|
error_page 404 = @redirect_home;
|
|
|
|
# Linux repository
|
|
server {
|
|
listen 8080 default_server;
|
|
server_name _;
|
|
|
|
root /srv/repository;
|
|
index index.html;
|
|
autoindex off;
|
|
|
|
if ($request_method !~ ^(GET|HEAD)$) {
|
|
return 405;
|
|
}
|
|
|
|
location = /healthz {
|
|
default_type text/plain;
|
|
return 200 "ok\n";
|
|
}
|
|
|
|
location = / {
|
|
proxy_set_header X-Repo-Site linux;
|
|
proxy_pass http://repository-dashboard:8000/;
|
|
}
|
|
|
|
location = /index.html {
|
|
proxy_set_header X-Repo-Site linux;
|
|
proxy_pass http://repository-dashboard:8000/index.html;
|
|
}
|
|
|
|
location ^~ /ui/ {
|
|
proxy_pass http://repository-dashboard:8000;
|
|
}
|
|
|
|
location = /api/v1/packages {
|
|
proxy_pass http://repository-dashboard:8000;
|
|
}
|
|
|
|
location ~ (^|/)\. {
|
|
deny all;
|
|
}
|
|
|
|
location / {
|
|
expires 10m;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Redirect 404 to homepage
|
|
location @redirect_home {
|
|
return 302 /;
|
|
}
|
|
}
|
|
|
|
# OPNsense / FreeBSD repository
|
|
server {
|
|
listen 8081;
|
|
server_name _;
|
|
|
|
root /srv/repository/opnsense;
|
|
index index.html;
|
|
autoindex off;
|
|
|
|
if ($request_method !~ ^(GET|HEAD)$) {
|
|
return 405;
|
|
}
|
|
|
|
location = /healthz {
|
|
default_type text/plain;
|
|
return 200 "ok\n";
|
|
}
|
|
|
|
location = / {
|
|
proxy_set_header X-Repo-Site opnsense;
|
|
proxy_pass http://repository-dashboard:8000/;
|
|
}
|
|
|
|
location = /index.html {
|
|
proxy_set_header X-Repo-Site opnsense;
|
|
proxy_pass http://repository-dashboard:8000/index.html;
|
|
}
|
|
|
|
location = /freebsd {
|
|
return 301 /freebsd/;
|
|
}
|
|
|
|
location = /freebsd/ {
|
|
proxy_set_header X-Repo-Site freebsd;
|
|
proxy_pass http://repository-dashboard:8000/freebsd/;
|
|
}
|
|
|
|
location = /freebsd/index.html {
|
|
proxy_set_header X-Repo-Site freebsd;
|
|
proxy_pass http://repository-dashboard:8000/freebsd/index.html;
|
|
}
|
|
|
|
location ^~ /ui/ {
|
|
proxy_pass http://repository-dashboard:8000;
|
|
}
|
|
|
|
location = /api/v1/packages {
|
|
proxy_pass http://repository-dashboard:8000;
|
|
}
|
|
|
|
# Serve FreeBSD package catalogs directly
|
|
location /freebsd/ {
|
|
alias /srv/repository/freebsd/;
|
|
expires 10m;
|
|
autoindex off;
|
|
}
|
|
|
|
location ~ (^|/)\. {
|
|
deny all;
|
|
}
|
|
|
|
location / {
|
|
expires 10m;
|
|
try_files $uri =404;
|
|
}
|
|
|
|
# Redirect 404 to homepage
|
|
location @redirect_home {
|
|
return 302 /;
|
|
}
|
|
}
|
|
} |