📃
RHQ DOCS
Game PanelPHPMyAdminOfficial Site
  • 👋Salutare! Welcome! Hallo!
  • 🚗Fivem
    • Fivem | Explicatie
    • 1. Cum rulam un server de fivem basic?
      • FxServer pentru Windows
      • FxServer pentru Linux
  • 🖥️VPS
    • 1. VPS Windows - Tutoriale
      • Deschidere porturi windows
      • Conectare RDP
      • Resetare parola vps
    • 2. VPS Linux - Tutoriale
      • NODE.js Install
      • Configuratie Nginx
      • PHP Install
Powered by GitBook
  1. VPS
  2. 2. VPS Linux - Tutoriale

Configuratie Nginx

Configuratii pentru WebHost pentru site-uri cat si proxy pe port folosind nginx

Creearea unui config si punerea site-ului/proxy-ului in functiune:

Este nevoie de PHP instalat inainte ca site-ul sa functioneze daca el nu este doar HTML si are capabilitate PHP


  1. Pentru a putea folosii nginx mai intai trebuie instalat impreuna cu cerbot pentru certificate SSL:

    • apt update && apt upgrade -y && apt install -y nginx certbot

  2. Dupa care faceti un config nou in nginx pentru un website:

    • nano /etc/nginx/sites-available/<numeconfig>.conf (inlocuiti doar <numeconfig> cu numele site-ului sau eventual un nume ales aleatoriu)

  3. Cu click dreapta dati paste la unul din urmatoarele configuri (depinzand de caz):

    • Config WebHost PHP:

      nginx-php-web.conf
      server_tokens off;
      
      server {
          listen 80;
          listen [::]:80;
          server_name exemplu.dns;
          return 301 https://$server_name$request_uri;
      }
      
      server {
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          server_name exemplu.dns;
      
          root /var/www/path_site;
          index index.php;
      
          # allow larger file uploads and longer script runtimes
          client_max_body_size 100m;
          client_body_timeout 120s;
      
          sendfile off;
      
          # SSL Configuration - Replace the example exemplu.dns with your domain
          ssl_certificate /etc/letsencrypt/live/exemplu.dns/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/exemplu.dns/privkey.pem;
          ssl_session_cache shared:SSL:10m;
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
          ssl_prefer_server_ciphers on;
      
          # See https://hstspreload.org/ before uncommenting the line below.
          # add_header Strict-Transport-Security "max-age=15768000; preload;";
          add_header X-Content-Type-Options nosniff;
          add_header X-XSS-Protection "1; mode=block";
          add_header X-Robots-Tag none;
          add_header Content-Security-Policy "frame-ancestors 'self'";
          add_header X-Frame-Options DENY;
          add_header Referrer-Policy same-origin;
      
          location / {
              try_files $uri $uri/ /index.php?$query_string;
          }
      
          location ~ \.php$ {
              fastcgi_split_path_info ^(.+\.php)(/.+)$;
              fastcgi_pass unix:/run/php/php8.1-fpm.sock; # Modificati cu versiunea de php pe care o aveti instalata (Ex: 7.4, 8.0, 8.1, 8.2, 8.3, etc)
              fastcgi_index index.php;
              include fastcgi_params;
              fastcgi_param PHP_VALUE "upload_max_filesize=256M \n post_max_size=40M"; # Marimea maxima la un fisier incarcat(upload_max_filesize) si marimea maxima a unui request pe webserver(post_max_size)
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
              fastcgi_param HTTP_PROXY "";
              fastcgi_intercept_errors off;
              fastcgi_buffer_size 16k;
              fastcgi_buffers 4 16k;
              fastcgi_connect_timeout 300;
              fastcgi_send_timeout 300;
              fastcgi_read_timeout 300;
              include /etc/nginx/fastcgi_params;
          }
      
      
          set_real_ip_from 173.245.48.0/20;
          set_real_ip_from 103.21.244.0/22;
          set_real_ip_from 103.22.200.0/22;
          set_real_ip_from 103.31.4.0/22;
          set_real_ip_from 141.101.64.0/18;
          set_real_ip_from 108.162.192.0/18;
          set_real_ip_from 190.93.240.0/20;
          set_real_ip_from 188.114.96.0/20;
          set_real_ip_from 197.234.240.0/22;
          set_real_ip_from 198.41.128.0/17;
          set_real_ip_from 162.158.0.0/15;
          set_real_ip_from 104.16.0.0/13;
          set_real_ip_from 104.24.0.0/14;
          set_real_ip_from 172.64.0.0/13;
          set_real_ip_from 131.0.72.0/22;
          set_real_ip_from 2400:cb00::/32;
          set_real_ip_from 2606:4700::/32;
          set_real_ip_from 2803:f800::/32;
          set_real_ip_from 2405:b500::/32;
          set_real_ip_from 2405:8100::/32;
          set_real_ip_from 2a06:98c0::/29;
          set_real_ip_from 2c0f:f248::/32;
          real_ip_header CF-Connecting-IP;
      
          location ~ /\.ht {
              deny all;
          }
      }
      

      In acest config trebuie schimbat <path_site> cu path-ul site-ului dvs de pe server din folderul /var/www/ si <exemplu.dns> cu dns-ul setat. Dupa care veti da CTRL + X si veti apasa Y dupa care ENTER

    • Config Nginx Proxy:

      nginx-proxy-web.conf
      server {
          listen 80;
          listen [::]:80;
          server_name exemplu.dns;
          return 301 https://$server_name$request_uri;
      }
      
      server {
          listen 443 ssl http2;
          listen [::]:443 ssl http2;
          server_name exemplu.dns;
          
          ssl_certificate /etc/letsencrypt/live/exemplu.dns/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/exemplu.dns/privkey.pem;
          ssl_session_cache shared:SSL:10m;
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
          ssl_prefer_server_ciphers on;
      
          location / {
              proxy_pass https://127.0.0.1:port;
              proxy_set_header Host $host;
              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;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection upgrade;
              proxy_set_header Accept-Encoding gzip;
          }
      
          set_real_ip_from 173.245.48.0/20;
          set_real_ip_from 103.21.244.0/22;
          set_real_ip_from 103.22.200.0/22;
          set_real_ip_from 103.31.4.0/22;
          set_real_ip_from 141.101.64.0/18;
          set_real_ip_from 108.162.192.0/18;
          set_real_ip_from 190.93.240.0/20;
          set_real_ip_from 188.114.96.0/20;
          set_real_ip_from 197.234.240.0/22;
          set_real_ip_from 198.41.128.0/17;
          set_real_ip_from 162.158.0.0/15;
          set_real_ip_from 104.16.0.0/13;
          set_real_ip_from 104.24.0.0/14;
          set_real_ip_from 172.64.0.0/13;
          set_real_ip_from 131.0.72.0/22;
          set_real_ip_from 2400:cb00::/32;
          set_real_ip_from 2606:4700::/32;
          set_real_ip_from 2803:f800::/32;
          set_real_ip_from 2405:b500::/32;
          set_real_ip_from 2405:8100::/32;
          set_real_ip_from 2a06:98c0::/29;
          set_real_ip_from 2c0f:f248::/32;
          real_ip_header CF-Connecting-IP;
      
          location ~ /\.ht {
              deny all;
          }
      }

      In acest config trebuie schimbat <port> pe care aveti acea aplicatie caruia vreti sa-i dati forward prin domeniu si <exemplu.dns> cu dns-ul setat. Dupa care veti da CTRL + X si veti apasa Y dupa care ENTER

  4. Creearea certificatului SSL si activarea configului:

    • Mai intai vom oprii NGINX pentru a putea creea certificatele SSL si a activa configul - systemctl stop nginx

    • Dupa care vom creea certificatul SSL folosind certbot: - certbot certonly --standalone -d <exemplu.dns> (se va inlocuii <exemplu.dns> cu dns-ul creeat pentru site)

    • Ne vom asigura ca site-ul are permisiunile corespunzatoare pentru ca NGINX sa il poata accesa: - chown -R www-data:www-data /var/www/<path_site>/* (se va inlocuii <path_site> cu locatia site-ului in folderul /var/www/)

    • Iar in final, vom activa configul pentru site: - rm /etc/nginx/sites-enabled/default && sudo ln -s /etc/nginx/sites-available/<numeconfig>.conf /etc/nginx/sites-enabled/<numeconfig>.conf (se va inlocuii <numeconfig> cu numele configuli facut in pasul 3)

  5. Activarea serviciului NGINX pentru ca site-ul sa devina online:

    • systemctl enable nginx && systemctl start nginx


Done. Acum site-ul ar trebuii sa fie online daca instructiunile au fost urmarite corect.

PreviousNODE.js InstallNextPHP Install

Last updated 1 year ago

Was this helpful?

🖥️