diff --git a/nginx/opennet/README.md b/nginx/opennet/README.md index e69de29..d8ae276 100644 --- a/nginx/opennet/README.md +++ b/nginx/opennet/README.md @@ -0,0 +1,29 @@ +# Nginx proxy configuration for OpenNet + +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` + +## Installation + +1. Download `nginx/opennet` to `/etc/nginx` folder +2. Copy `nginx/opennet/server.conf` to `sites-available/opennet.conf` +3. Alternatively, include `nginx/opennet/locations.conf` to existing website config at `sites-available` then reload nginx configuration + +## Issues + +1. At this moment, config drops all JS some tabs could not work +2. Youtube embedded content still works +3. Redirect cases not implemented yet and require additional rules implementation \ No newline at end of file diff --git a/nginx/opennet/include/locations/bsd.conf b/nginx/opennet/include/locations/bsd.conf new file mode 100644 index 0000000..c6684ca --- /dev/null +++ b/nginx/opennet/include/locations/bsd.conf @@ -0,0 +1,14 @@ +location /opennet/bsd { + + # Domain source + proxy_pass https://bsd.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/bsd/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/bsd/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/bsd/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/bsd/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/cisco.conf b/nginx/opennet/include/locations/cisco.conf new file mode 100644 index 0000000..9eaf0e1 --- /dev/null +++ b/nginx/opennet/include/locations/cisco.conf @@ -0,0 +1,14 @@ +location /opennet/cisco { + + # Domain source + proxy_pass https://cisco.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/cisco/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/cisco/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/cisco/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/cisco/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/grab.conf b/nginx/opennet/include/locations/grab.conf new file mode 100644 index 0000000..1440ee7 --- /dev/null +++ b/nginx/opennet/include/locations/grab.conf @@ -0,0 +1,14 @@ +location /opennet/grab { + + # Domain source + proxy_pass https://grab.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/grab/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/grab/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/grab/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/grab/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/include/common.conf b/nginx/opennet/include/locations/include/common.conf index 5a1e0c4..442eef8 100644 --- a/nginx/opennet/include/locations/include/common.conf +++ b/nginx/opennet/include/locations/include/common.conf @@ -1,3 +1,7 @@ +# Include configuration file +# Describes common rules for available locations at +# nginx/opennet/include/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; diff --git a/nginx/opennet/include/locations/linux.conf b/nginx/opennet/include/locations/linux.conf new file mode 100644 index 0000000..a4e7a78 --- /dev/null +++ b/nginx/opennet/include/locations/linux.conf @@ -0,0 +1,14 @@ +location /opennet/linux { + + # Domain source + proxy_pass https://linux.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/linux/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/linux/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/linux/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/linux/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/m.conf b/nginx/opennet/include/locations/m.conf new file mode 100644 index 0000000..17b461d --- /dev/null +++ b/nginx/opennet/include/locations/m.conf @@ -0,0 +1,14 @@ +location /opennet/m { + + # Domain source + proxy_pass https://m.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/m/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/m/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/m/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/m/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/mobile.conf b/nginx/opennet/include/locations/mobile.conf new file mode 100644 index 0000000..74519c5 --- /dev/null +++ b/nginx/opennet/include/locations/mobile.conf @@ -0,0 +1,14 @@ +location /opennet/mobile { + + # Domain source + proxy_pass https://mobile.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/mobile/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/mobile/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/mobile/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/mobile/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/palm.conf b/nginx/opennet/include/locations/palm.conf new file mode 100644 index 0000000..494c0a9 --- /dev/null +++ b/nginx/opennet/include/locations/palm.conf @@ -0,0 +1,14 @@ +location /opennet/palm { + + # Domain source + proxy_pass https://palm.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/palm/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/palm/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/palm/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/palm/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/security.conf b/nginx/opennet/include/locations/security.conf new file mode 100644 index 0000000..56c6ea8 --- /dev/null +++ b/nginx/opennet/include/locations/security.conf @@ -0,0 +1,14 @@ +location /opennet/security { + + # Domain source + proxy_pass https://security.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/security/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/security/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/security/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/security/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/solaris.conf b/nginx/opennet/include/locations/solaris.conf new file mode 100644 index 0000000..35cf822 --- /dev/null +++ b/nginx/opennet/include/locations/solaris.conf @@ -0,0 +1,14 @@ +location /opennet/solaris { + + # Domain source + proxy_pass https://solaris.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/solaris/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/solaris/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/solaris/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/solaris/"; +} \ No newline at end of file diff --git a/nginx/opennet/include/locations/web.conf b/nginx/opennet/include/locations/web.conf new file mode 100644 index 0000000..3bbe2fd --- /dev/null +++ b/nginx/opennet/include/locations/web.conf @@ -0,0 +1,14 @@ +location /opennet/web { + + # Domain source + proxy_pass https://web.opennet.ru/; + + # Include common rules + include /etc/nginx/opennet/include/locations/include/common.conf; + + # Relative paths + sub_filter 'href="/' 'href="http://[$server_addr]/opennet/web/'; + sub_filter 'src="/' 'src="http://[$server_addr]/opennet/web/'; + sub_filter 'data-src="/' 'src="http://[$server_addr]/opennet/web/'; + sub_filter "url('/" "url('http://[$server_addr]/opennet/web/"; +} \ No newline at end of file diff --git a/nginx/opennet/server.conf b/nginx/opennet/server.conf index 48852ca..a0721a5 100644 --- a/nginx/opennet/server.conf +++ b/nginx/opennet/server.conf @@ -7,5 +7,6 @@ server { # allow 0200::/7; # deny all; + # Include available locations include /etc/nginx/opennet/locations.conf; } \ No newline at end of file