update opennet location

This commit is contained in:
ghost 2023-12-03 20:55:24 +02:00
parent 8b1aa75ea4
commit 1bcd1d943a
35 changed files with 368 additions and 365 deletions

3
nginx/yggbro/README.md Normal file
View file

@ -0,0 +1,3 @@
# Nginx proxy configuration for /yggbro subdirectory
Follow subfolder instructions to enable.

View file

@ -0,0 +1,36 @@
# Nginx proxy configuration for OpenNet located at subfolder
Current implementation forward subdomains to following proxy locations:
* `opennet.ru` > `/opennet`
* `www.opennet.ru` > `/opennet/www`
* `bsd.opennet.ru` > `/opennet/bsd`
* `cisco.opennet.ru` > `/opennet/cisco`
* `grab.opennet.ru` > `/opennet/grab`
* `linux.opennet.ru` > `/opennet/linux`
* `m.opennet.ru` > `/opennet/m`
* `mobile.opennet.ru` > `/opennet/mobile`
* `palm.opennet.ru` > `/opennet/palm`
* `security.opennet.ru` > `/opennet/security`
* `solaris.opennet.ru` > `/opennet/solaris`
* `web.opennet.ru` > `/opennet/web`
* `wiki.opennet.ru` > `/opennet/wiki`
* `forum.opennet.ru` > `/opennet/wwwcgi-bin/openforum/vsluhboard.cgi`
## Install
* `ln -s /etc/yggbro/nginx/yggbro/opennet/server.conf /etc/nginx/sites-enabled/yggbro.opennet.conf`
* `nginx -t`
* `service nginx reload`
## Uninstall
* `rm /etc/nginx/sites-enabled/yggbro.opennet.conf`
* `nginx -t`
* `service nginx reload`
## Issues
1. At this moment, config drops all JS some tabs could not work
2. Youtube embedded content still works
3. Redirect cases for some sub-domains require additional rules implementation

View file

@ -0,0 +1,9 @@
# Prevent out redirects (solution for issue #2)
location @yggbro_nginx_yggbro_opennet_handles_redirect {
set $original_uri $uri;
set $orig_loc $upstream_http_location;
proxy_pass $orig_loc;
}

View file

@ -0,0 +1,38 @@
# www-less
include /etc/yggbro/nginx/yggbro/opennet/locations/www-less.conf;
# www
include /etc/yggbro/nginx/yggbro/opennet/locations/www.conf;
# bsd
include /etc/yggbro/nginx/yggbro/opennet/locations/bsd.conf;
# cisco
include /etc/yggbro/nginx/yggbro/opennet/locations/cisco.conf;
# grab
include /etc/yggbro/nginx/yggbro/opennet/locations/grab.conf;
# linux
include /etc/yggbro/nginx/yggbro/opennet/locations/linux.conf;
# m
include /etc/yggbro/nginx/yggbro/opennet/locations/m.conf;
# mobile
include /etc/yggbro/nginx/yggbro/opennet/locations/mobile.conf;
# palm
include /etc/yggbro/nginx/yggbro/opennet/locations/palm.conf;
# security
include /etc/yggbro/nginx/yggbro/opennet/locations/security.conf;
# solaris
include /etc/yggbro/nginx/yggbro/opennet/locations/solaris.conf;
# web
include /etc/yggbro/nginx/yggbro/opennet/locations/web.conf;
# wiki
include /etc/yggbro/nginx/yggbro/opennet/locations/wiki.conf;

View file

@ -0,0 +1,15 @@
location /opennet/bsd {
# Domain source
proxy_pass https://bsd.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/bsd/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/bsd/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/bsd/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/bsd/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/bsd/";
}

View file

@ -0,0 +1,15 @@
location /opennet/cisco {
# Domain source
proxy_pass https://cisco.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/cisco/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/cisco/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/cisco/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/cisco/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/cisco/";
}

View file

@ -0,0 +1,15 @@
location /opennet/grab {
# Domain source
proxy_pass https://grab.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/grab/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/grab/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/grab/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/grab/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/grab/";
}

View file

@ -0,0 +1,127 @@
# Include configuration file
# Describes common rules for available locations at
# nginx/opennet/locations
# Tell to server, that's proxy request
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
# Prevent out redirects (issue #2)
proxy_intercept_errors on;
error_page 301 302 307 = @yggbro_nginx_yggbro_opennet_handles_redirect;
# Replace all matches
sub_filter_once off;
# Enable multimedia replacement
sub_filter_types *;
# Disable JS / trackers by default
sub_filter '<script' '<!-- <script';
sub_filter '</script>' '</script> -->';
# Feedback link to project repository
sub_filter '</body>' '<a style="position:fixed;top:20px;right:20px;z-index:999" href="https://github.com/YGGverse/YGGbro/tree/main/nginx/opennet" target="_blank">YGGbro</a></body>';
# Links
# .
sub_filter 'http://opennet.ru' 'http://[$server_addr]/yggbro/opennet';
sub_filter 'https://opennet.ru' 'http://[$server_addr]/yggbro/opennet';
sub_filter 'http://opennet.me' 'http://[$server_addr]/yggbro/opennet';
sub_filter 'https://opennet.me' 'http://[$server_addr]/yggbro/opennet';
# www
sub_filter 'http://www.opennet.ru' 'http://[$server_addr]/yggbro/opennet/www';
sub_filter 'https://www.opennet.ru' 'http://[$server_addr]/yggbro/opennet/www';
sub_filter 'http://www.opennet.me' 'http://[$server_addr]/yggbro/opennet/www';
sub_filter 'https://www.opennet.me' 'http://[$server_addr]/yggbro/opennet/www';
# m
sub_filter 'http://m.opennet.ru' 'http://[$server_addr]/yggbro/opennet/m';
sub_filter 'https://m.opennet.ru' 'http://[$server_addr]/yggbro/opennet/m';
sub_filter 'http://m.opennet.me' 'http://[$server_addr]/yggbro/opennet/m';
sub_filter 'https://m.opennet.me' 'http://[$server_addr]/yggbro/opennet/m';
# mobile
sub_filter 'http://mobile.opennet.ru' 'http://[$server_addr]/yggbro/opennet/mobile';
sub_filter 'https://mobile.opennet.ru' 'http://[$server_addr]/yggbro/opennet/mobile';
sub_filter 'http://mobile.opennet.me' 'http://[$server_addr]/yggbro/opennet/mobile';
sub_filter 'https://mobile.opennet.me' 'http://[$server_addr]/yggbro/opennet/mobile';
# wiki
sub_filter 'http://wiki.opennet.ru' 'http://[$server_addr]/yggbro/opennet/wiki';
sub_filter 'https://wiki.opennet.ru' 'http://[$server_addr]/yggbro/opennet/wiki';
sub_filter 'http://wiki.opennet.me' 'http://[$server_addr]/yggbro/opennet/wiki';
sub_filter 'https://wiki.opennet.me' 'http://[$server_addr]/yggbro/opennet/wiki';
# solaris
sub_filter 'http://solaris.opennet.ru' 'http://[$server_addr]/yggbro/opennet/solaris';
sub_filter 'https://solaris.opennet.ru' 'http://[$server_addr]/yggbro/opennet/solaris';
sub_filter 'http://solaris.opennet.me' 'http://[$server_addr]/yggbro/opennet/solaris';
sub_filter 'https://solaris.opennet.me' 'http://[$server_addr]/yggbro/opennet/solaris';
# bsd
sub_filter 'http://bsd.opennet.ru' 'http://[$server_addr]/yggbro/opennet/bsd';
sub_filter 'https://bsd.opennet.ru' 'http://[$server_addr]/yggbro/opennet/bsd';
sub_filter 'http://bsd.opennet.me' 'http://[$server_addr]/yggbro/opennet/bsd';
sub_filter 'https://bsd.opennet.me' 'http://[$server_addr]/yggbro/opennet/bsd';
# cisco
sub_filter 'http://cisco.opennet.ru' 'http://[$server_addr]/yggbro/opennet/cisco';
sub_filter 'https://cisco.opennet.ru' 'http://[$server_addr]/yggbro/opennet/cisco';
sub_filter 'http://cisco.opennet.me' 'http://[$server_addr]/yggbro/opennet/cisco';
sub_filter 'https://cisco.opennet.me' 'http://[$server_addr]/yggbro/opennet/cisco';
# linux
sub_filter 'http://linux.opennet.ru' 'http://[$server_addr]/yggbro/opennet/linux';
sub_filter 'https://linux.opennet.ru' 'http://[$server_addr]/yggbro/opennet/linux';
sub_filter 'http://linux.opennet.me' 'http://[$server_addr]/yggbro/opennet/linux';
sub_filter 'https://linux.opennet.me' 'http://[$server_addr]/yggbro/opennet/linux';
# web
sub_filter 'http://web.opennet.ru' 'http://[$server_addr]/yggbro/opennet/web';
sub_filter 'https://web.opennet.ru' 'http://[$server_addr]/yggbro/opennet/web';
sub_filter 'http://web.opennet.me' 'http://[$server_addr]/yggbro/opennet/web';
sub_filter 'https://web.opennet.me' 'http://[$server_addr]/yggbro/opennet/web';
# security
sub_filter 'http://security.opennet.ru' 'http://[$server_addr]/yggbro/opennet/security';
sub_filter 'https://security.opennet.ru' 'http://[$server_addr]/yggbro/opennet/security';
sub_filter 'http://security.opennet.me' 'http://[$server_addr]/yggbro/opennet/security';
sub_filter 'https://security.opennet.me' 'http://[$server_addr]/yggbro/opennet/security';
# palm
sub_filter 'http://palm.opennet.ru' 'http://[$server_addr]/yggbro/opennet/palm';
sub_filter 'https://palm.opennet.ru' 'http://[$server_addr]/yggbro/opennet/palm';
sub_filter 'http://palm.opennet.me' 'http://[$server_addr]/yggbro/opennet/palm';
sub_filter 'https://palm.opennet.me' 'http://[$server_addr]/yggbro/opennet/palm';
# grab
sub_filter 'http://grab.opennet.ru' 'http://[$server_addr]/yggbro/opennet/grab';
sub_filter 'https://grab.opennet.ru' 'http://[$server_addr]/yggbro/opennet/grab';
sub_filter 'http://grab.opennet.me' 'http://[$server_addr]/yggbro/opennet/grab';
sub_filter 'https://grab.opennet.me' 'http://[$server_addr]/yggbro/opennet/grab';
# forum
sub_filter 'http://forum.opennet.ru' 'http://[$server_addr]/yggbro/opennet/wwwcgi-bin/openforum/vsluhboard.cgi';
sub_filter 'https://forum.opennet.ru' 'http://[$server_addr]/yggbro/opennet/wwwcgi-bin/openforum/vsluhboard.cgi';
sub_filter 'http://forum.opennet.me' 'http://[$server_addr]/yggbro/opennet/wwwcgi-bin/openforum/vsluhboard.cgi';
sub_filter 'https://forum.opennet.me' 'http://[$server_addr]/yggbro/opennet/wwwcgi-bin/openforum/vsluhboard.cgi';
sub_filter '/forum' '/cgi-bin/openforum/vsluhboard.cgi';
sub_filter './forum' 'http://[$server_addr]/yggbro/opennet/wwwcgi-bin/openforum/vsluhboard.cgi';

View file

@ -0,0 +1,15 @@
location /opennet/linux {
# Domain source
proxy_pass https://linux.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/linux/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/linux/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/linux/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/linux/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/linux/";
}

View file

@ -0,0 +1,15 @@
location /opennet/m {
# Domain source
proxy_pass https://m.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/m/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/m/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/m/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/m/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/m/";
}

View file

@ -0,0 +1,15 @@
location /opennet/mobile {
# Domain source
proxy_pass https://mobile.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/mobile/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/mobile/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/mobile/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/mobile/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/mobile/";
}

View file

@ -0,0 +1,15 @@
location /opennet/palm {
# Domain source
proxy_pass https://palm.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/palm/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/palm/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/palm/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/palm/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/palm/";
}

View file

@ -0,0 +1,15 @@
location /opennet/security {
# Domain source
proxy_pass https://security.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/security/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/security/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/security/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/security/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/security/";
}

View file

@ -0,0 +1,15 @@
location /opennet/solaris {
# Domain source
proxy_pass https://solaris.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/solaris/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/solaris/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/solaris/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/solaris/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/solaris/";
}

View file

@ -0,0 +1,15 @@
location /opennet/web {
# Domain source
proxy_pass https://web.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/web/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/web/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/web/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/web/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/web/";
}

View file

@ -0,0 +1,15 @@
location /opennet/wiki {
# Domain source
proxy_pass https://wiki.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/wiki/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/wiki/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/wiki/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/wiki/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/wiki/";
}

View file

@ -0,0 +1,15 @@
location /opennet {
# Domain source
proxy_pass https://opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/opennet/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/";
}

View file

@ -0,0 +1,15 @@
location /opennet/www {
# Domain source
proxy_pass https://www.opennet.ru/;
# Include common rules
include /etc/yggbro/nginx/yggbro/opennet/locations/include/common.conf;
# Relative paths
sub_filter 'action="/' 'action="http://[$server_addr]/yggbro/opennet/www/';
sub_filter 'href="/' 'href="http://[$server_addr]/yggbro/opennet/www/';
sub_filter 'src="/' 'src="http://[$server_addr]/yggbro/opennet/www/';
sub_filter 'data-src="/' 'src="http://[$server_addr]/yggbro/opennet/www/';
sub_filter "url('/" "url('http://[$server_addr]/yggbro/opennet/www/";
}

View file

@ -0,0 +1,15 @@
server {
# HTTP/IPv6 connections only
listen [::]:80;
# Yggdrasil connections only
allow 0200::/7;
deny all;
# Include handles
include /etc/yggbro/nginx/yggbro/opennet/handles/redirect.conf;
# Include available locations
include /etc/yggbro/nginx/yggbro/opennet/locations.conf;
}