sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt install -y ubuntu-release-upgrader-core
Install the required tools:
sudo apt install -y nano htop git zip unzip curl python3 gettext screen cron software-properties-common
Install the nginx web server:
sudo apt update
sudo apt install -y nginx
Configure basic authentication for nginx:
sudo apt install apache2-utils
sudo touch /etc/nginx/.htpasswd
sudo htpasswd /etc/nginx/.htpasswd username
sudo chmod 640 /etc/nginx/.htpasswd
sudo chown root:www-data /etc/nginx/.htpasswd
Create config with basic authentication:
sudo nano /etc/nginx/sites-available/tg.example.com.conf
server {
listen 80;
listen [::]:80;
server_name tg.example.com;
access_log /var/log/nginx/tg_example_com_access.log;
error_log /var/log/nginx/tg_example_com_error.log;
location / {
proxy_pass https://api.telegram.org;
proxy_ssl_server_name on;
proxy_set_header Host api.telegram.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
auth_basic "Basic Authentication";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
sudo ln -sf /etc/nginx/sites-available/tg.example.com.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Create config without authentication:
server {
listen 80;
listen [::]:80;
server_name tg.example.com;
access_log /var/log/nginx/tg_example_com_access.log;
error_log /var/log/nginx/tg_example_com_error.log;
location / {
proxy_pass https://api.telegram.org;
proxy_ssl_server_name on;
proxy_set_header Host api.telegram.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Create config with ip restriction:
server {
listen 80;
listen [::]:80;
server_name tg.example.com;
access_log /var/log/nginx/tg_example_com_access.log;
error_log /var/log/nginx/tg_example_com_error.log;
location / {
allow 86.5.90.165;
allow 159.69.27.111;
deny all;
proxy_pass https://api.telegram.org;
proxy_ssl_server_name on;
proxy_set_header Host api.telegram.org;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
find public IP:
curl https://api.ipify.org
curl https://ipwho.is
curl https://checkip.amazonaws.com