Config 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
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
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)
Cu click dreapta dati paste la unul din urmatoarele configuri (depinzand de caz):
Config WebHost PHP:
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:
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
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)
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.
Last updated
Was this helpful?