Cum se foloseste Cloudfare pentru a securiza website-rile sau aplicatiile web

Daca esti intr-o situatie in care nu iti permiti un firewall in fata webserverului, nu stii sa configurezi unul sau nu poti instala certificat SSL pentru o accesare sigura, atunci cloudfare ofera gratuit aceste servicii. Conditia este sa ai ns-urile domeniului tau la Cloudfare. Cand iti faci cont la Cloudfare indicatiile pentru setarea ns-urile sunt foarte simple si te indruma, dar depinde si registrarul unde ai domeniul. Totodata ne ofera si Analytics, date cu privire la cati vizitatori am avut, de unde etc.. Pentru a seta reguli firewall si a asigura certificat SSL urmati pasii de mai jos.

[mai mult...]

Cum sa gazduiesti mai multe website-uri sau aplicatii web acasa in spatele aceluiasi IP public

De regula, persoanele fizice au abonament de internet care presupune alocarea unui singur ip dinamic, iar din aceasta cauza hostingul acasa a mai multor website-uri sau aplicatii web presupune o aplicatie in plus cu rol de proxy care va forwarda traficul in functie de request. Altfel, ne-ar fi necesar cate un ip public pentru fiecare website sau aplicatie web.

Pentru aceasta solutie este necesar un calculator/server/masina virtuala cu ubuntu server si docker instalat. Programul cu rol de proxy se numeste Nginx Proxy Manager care vine in plus cu interfata grafica fata de Nginx normal si il vom instala intr-un docker container. Pe langa asta vom avea nevoie de un domeniu, daca nu aveti deja, puteti lua unul gratuit. De asemenea, am ales sa pun ns-urile la cloudfare ca sa putem actualiza constant ip-ul nostru public tot cu ajutorul unui docker container. In routerul de acasa trebuie sa deschidem si porturile 443 si 80 catre serverul nostru.

Aplicatia pe care o voi folosi ca exemplu este Plex Media Server instalata tot intr-un docker container. La final o vom putea accesa din internet la https://media.giant.gq Exista o multime de aplicatii care pot rula intr-un docker container (Nextcloud, qBittorrent, MariaDB, Pi-Hole, chiar si solutii complete de mail server), iar prin modul acesta de instalare optimizam resursele sistemului.

[mai mult...]

Contorizare consoane si vocale din text

Se citeste un text format din cuvinte ce pot fi despartite prin spatiu sau virgula. Textul citit se termina cu punct sau enter. Sa se contorizeze vocalele si consoanele din acel text. Sa se rezolve problema folosind o bucla repetitiva conditionata posterior.

Forma unei funcții

Despre funcția sqrt (și de fapt despre orice funcții), trebuie cunoscute niște informații specifice, pentru a ști cum și când o putem folosi:

  • numele funcției
  • numărul parametrilor
  • tipul parametrilor
  • tipul rezultatului

Aceste informații sunt precizate printr-un mecanism de declarare a funcției, numit prototip. De exemplu funcția sqrt determină rădăcina pătrată dintr-un număr real (nenegativ) iar rezultatul său este de asemenea număr real. Prototipul său este:

double sqrt(double);

Prototipurile funcțiilor din aceeași categorie sunt grupate într-un fișier header. Acesta trebuie inclus în programul nostru, prin directiva #include. De exemplu, dacă folosim operațiile de de citire/scriere vom include header-ul iostream, iar dacă folosim funcțiile matematice vom include header-ul cmath.

Funcții cu caracter matematic

Denumire Header Prototip Rezultat
abs cstdlib int abs(int x) Valoarea absolută a argumentului, |x||x|, număr întreg
abs, fabs cmath double abs(double x), double fabs(double x) Valoarea absolută a argumentului, |x||x|, număr real
sqrt cmath double sqrt(double x) Rădăcina pătrată a argumentului, x−−√x
pow cmath double pow(double x, double y) Ridicarea la putere, xyxy
sin cmath double sin(double x) Funcția trigonometrică sinus, sinxsin⁡x
cos cmath double cos(double x) Funcția trigonometrică cosinus,cosxcos⁡x
tan cmath double tan(double x) Funcția trigonometrică tangentă,tanxtan⁡x
floor cmath double floor(double x) Cel mai mare întreg mai mic sau egal cu x
ceil cmath double ceil(double x) Cel mai mic întreg mai mare sau egal cu x
[mai mult...]