Find below a procedure to deploy a Nginx reverse proxy in front of 2 tiddlywiki servers (one accessible through a /wiki/.The other one through /wiki/ paths.
This is a need that emerged to avoid opening and configuring a number of ports on my cloud server. The below procedure give indications for
Certainly not optimal bu may be useful to anybody facing the same problem
Other options exist like the tiddlyServer that certainly bring other added values
4013 & 4014 on 127.0.0.1$:/config/tiddlyweb/host and content $protocol$//$host$/wiki/ for the first one$protocol$//$host$/sub/ for the second oneevents {
worker_connections 768;
# multi_accept on;
}
http {
server {
listen 80;
location /wiki/ {
proxy_pass http://127.0.0.1:4014/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /sub/ {
proxy_pass http://127.0.0.1:4013/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}sudo service nginx restartsudo apt-get install apache2-utilsuserName:sudo htpasswd -c /etc/nginx/.htpasswd userNamenginx.confevents {
worker_connections 768;
# multi_accept on;
}
http {
server {
listen 80;
location /wiki/ {
proxy_pass http://127.0.0.1:4014/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /sub/ {
proxy_pass http://127.0.0.1:4013/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
}sudo service nginx restart/home/pi/tiddly-wiki/certif_ssl/home/pi/tiddly-wiki/certif_sslopenssl genrsa -out vpl_nginx.pk 2048openssl req -new -key vpl_nginx.pk -out vpl_nginx.csr . Take care about Common Name. I've used here the IP@ as it is the way I access my server. Need to put the Common Name used for acessing the proxy from the browser.Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:XXXX
Locality Name (eg, city) []:XXXX
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXXX
Organizational Unit Name (eg, section) []:XXXX
Common Name (e.g. server FQDN or YOUR name) []:82.165.251.188
Email Address []:XX...@yyyy.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:cat name
An optional company name []:XXXXopenssl x509 -req -days 365 -in vpl_nginx.csr -signkey vpl_nginx.pk -out vpl_nginx.crtevents {
worker_connections 768;
# multi_accept on;
}
http {
server {
listen 443 ssl;
#server_name 192.168.0.101
ssl on;
ssl_certificate /home/pi/tiddly-wiki/certif_ssl/vpl_nginx.crt;
ssl_certificate_key /home/pi/tiddly-wiki/certif_ssl/vpl_nginx.pk;
location /wiki/ {
proxy_pass http://127.0.0.1:4014/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /sub/ {
proxy_pass http://127.0.0.1:4013/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
}sudo service nginx restart