Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄ΠΎΠΌΠ΅Π½ site.ru Π² ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠ°ΠΉΡ test.site.ru. Π DNS ΡΠΎΠ·Π΄Π°Π½Π° A Π·Π°ΠΏΠΈΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ°Ρ Π½Π° ip Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ nginx – nginx_srv. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ test_srv, Π³Π΄Π΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΉΡ.
Π ΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ ΡΠ΅ΠΊΡΠΈΠΈ server:
server {
listen 80;
server_name test.site.ru;
access_log /var/log/nginx/test.site.ru-access.log;
error_log /var/log/nginx/test.site.ru-error.log;
location / {
proxy_pass http://x.x.x.x; # ip Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡΒ http://test.site.ru. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° test_srv, Π³Π΄Π΅ ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π²Π΅Π± ΡΠ΅ΡΠ²Π΅Ρ. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΆΠ΅ nginx. Π£ Π²Π°Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, Π½Π°Π±ΡΠ°Π²Β http://x.x.x.xΒ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π°, ΡΡΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ proxy_pass Ρ Π²Π°Ρ Π²ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° phpΒ REMOTE_ADDRΒ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ip Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π ΠΎΠ½ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ΅Π½. ΠΡ ΡΡΠΎ Π΄Π°Π»ΡΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ip (real ip) Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π² nginx ΠΏΡΠΈ proxy_pass
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ip Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΡΒ proxy_set_header, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊΒ X-Real-IPΒ Π½Π°ΡΡΠΎΡΡΠΈΠΉ ip Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅, ΡΠΎ Π΅ΡΡΡ test_srv ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π·Π°ΠΌΠ΅Π½Ρ – Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°Π΄ΡΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π½Π° ΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ X-Real-IP. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΠΈΡ server ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
set_real_ip_from (Π²Π½Π΅ΡΠ½ΠΈΠΉ IP);
real_ip_header X-Real-IP;
ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅ΠΊΡΠΈΡ server Π½Π° test_srv Π² ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ:
server {
listen 80 default_server;
server_name test.site.ru;
root /usr/share/nginx/html;
set_real_ip_from (Π²Π½Π΅ΡΠ½ΠΈΠΉ IP);
real_ip_header X-Real-IP;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_ignore_client_abort off;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠΈΠ³, ΠΏΠ΅ΡΠ΅ΡΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ. Π Π»ΠΎΠ³Π°Ρ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ip Π°Π΄ΡΠ΅Ρ. ΠΠ³ΠΎ ΠΆΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² Π»ΠΎΠ³Π΅ web ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° test_srv.
ΠΠ°Π»ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° https ΡΠ΅ΡΠ΅Π· nginx Ρ ΠΏΠΎΠΌΠΎΡΡΡ proxy pass
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ https, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ssl ΡΠΎΠ»ΡΠΊΠΎ Π½Π° nginx_srv, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΠ΅ΡΡ Π·Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡ nginx_srv ΠΊ test_srv. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎ Π½Π΅Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ. Π Π°ΡΡΠΌΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ let’s encrypt. ΠΡΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ΅ΠΉΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΒ proxy_pass. ΠΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΒ Π½Π°ΡΡΡΠΎΠΉΠΊΡ let’s encryptΒ Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π» ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΠΎΠΈΡ certbot ΠΈ Π²ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π½Π° nginx_srv Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ location – /.well-known/acme-challenge/. ΠΠΎΠ»Π½Π°Ρ ΡΠ΅ΠΊΡΠΈΡ server Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
server {
listen 80;
server_name test.site.ru;
access_log /var/log/nginx/test.site.ru-access.log;
error_log /var/log/nginx/test.site.ru-error.log;
location /.well-known/acme-challenge/ {
root /web/sites/test.site.ru/www/;
}
location / {
proxy_pass http://x.x.x.x;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
ΠΠ΅ΡΠ΅ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ nginx ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
server {
listen 80;
server_name test.site.ru;
access_log /var/log/nginx/test.site.ru-access.log;
error_log /var/log/nginx/test.site.ru-error.log;
return 301 https://$server_name$request_uri; # ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ ΠΎΠ±ΡΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° https
}
server {
listen 443 ssl http2;
server_name test.site.ru;
access_log /var/log/nginx/test.site.ru-ssl-access.log;
error_log /var/log/nginx/test.site.ru-ssl-error.log;
ssl on;
ssl_certificate /etc/letsencrypt/live/test.site.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/test.site.ru/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
location /.well-known/acme-challenge/ {
root /web/sites/test.site.ru/www/;
}
location / {
proxy_pass http://x.x.x.x;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ. ΠΠΈΠ΄ΠΈΠΌ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ SSL Π²Π²ΠΈΠ΄Π΅ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ Π·Π°ΠΌΠΊΠ°.
ΠΠ°Ρ ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ https, ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΡΠΎΠ³Π°Π»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ, Π³Π΄Π΅ ΡΡΠΎΡ ΡΠ°ΠΉΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Ρ web ΡΠ°ΠΉΡΠΎΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠΊΡΠΈΡΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π½Π΅ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ°ΠΉΡ, Π° Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ΄Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π½Π° https, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ ΡΠΎΡΡΠΌ ΠΆΠΈΠ²Π΅Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈΒ http://test.site.ru/forum/, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ½Π΅ΡΡΠΈ ΡΠΎΡΡΠΌ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ web ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΠΈΠ³Ρ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ location.
location /forum/ {
proxy_pass http://x.x.x.x;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect default;
}
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠ΄Π°Π²Π°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ. Π ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΆΠΈΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ΅, Π³Π΄Π΅ nginx, Π° ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. Π’ΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π»ΠΎΠΊΠ°ΡΠΈΠΉ.
location / {
proxy_pass http://x.x.x.x;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location ~ \.(gif|jpg|png)$ {
root /web/sites/test.site.ru/www/images;
}
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΌ ΡΠ°ΠΉΡ ΡΠΌΠ΅Π» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΡΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΉΡΠΎΠΌ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ. ΠΡΠ΅ ΠΎΠ½ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ nginx. Π― Π½Π΅ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ nginx. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΠΈ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ, Π·Π°ΡΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Π½ΠΈΠΊΠ°Ρ Π² ΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΡΠ°Π·Ρ ΡΠ΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠΎΠ΄ΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΡΡΠΎ-ΡΠΎ Ρ Π΄ΡΡΠ³ΠΈΡ , Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΊ ΡΠ΅Π±Π΅, ΡΡΠ°ΡΠ°ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ.
ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ proxy_cache, Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΌ Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΎΡΠΊΠ»ΠΈΠΊ Π²Π΅Π± ΡΠ°ΠΉΡΠ°, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΠ΄Π°ΡΡ ΠΊΡΡΠ°. ΠΠΎ ΡΡΠΎ ΡΠΎΠ½ΠΊΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ. ΠΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ² ΡΡΡ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ nginx ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΌΠΎΠΈΠΌΠΈ Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΡΡΠ°ΡΡΠΈ (FAQ)
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ https Π½ΡΠΆΠ½ΠΎ Π»ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ proxy_pass Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ https ΠΈ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅?
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ. ΠΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΡΠ»ΠΊΠΈ Π²ΠΈΠ΄Π° http://site.ru:443, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌΠΈ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ nginx ΠΈ Π±ΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΡΠΎΠΆΠ΅ https ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΡΠΏΠΎΡΠ±ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ let’s encrypt Ρ nginx Π½Π° backend? ΠΠ΅Π΄Ρ ΠΎΠ±Π½ΠΎΠ²Π΄Π»Π΅Π½ΠΈΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° nginx.
Π― Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 2 ΡΠΏΠΎΡΠΎΠ±Π°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ – Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Ρ nginx Π½Π°ΡΡΡΠΎΠΈΡΡ nfs ΡΠ΅ΡΠ²Π΅Ρ, Π° Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΏΠΎΠ΄ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ nfs ΠΊ ΡΠ΅Π±Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /etc/letsencrypt ΠΈ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΊΠ°ΠΊ-Π±ΡΠ΄ΡΠΎ ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ – ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ bash ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΊ ΡΠ΅Π±Π΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎ scp. Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π°Π΄ΠΎ Π½Π΅ Π·Π°Π±ΡΡΡ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ»ΡΠΆΠ±Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ Ρ Π±ΡΠΊΠ΅Π½Π΄Π° ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠ°ΠΉΡΠ°, Π·Π°ΠΏΡΠΎΡ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° nginx proxy, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² dns ΠΏΡΠΎΠΏΠΈΡΠ°Π½ Π΅Π³ΠΎ ip Π°Π΄ΡΠ΅Ρ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ Π·Π°ΠΏΡΠΎΡ Π²Π΅ΡΠ½Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½. ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° proxy ΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΎΡΡΡΠ΄Π°.
Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠ°Π²ΠΊΠ° ΡΠ°ΠΉΠ»Π° /etc/hosts Π½Π° ΡΠ°ΠΌΠΎΠΌ Π±ΡΠΊΠ΅Π½Π΄Π΅. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π·Π°ΠΏΠΈΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°ΠΉΡΠ° ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ip Π°Π΄ΡΠ΅ΡΠΎΠΌ. Π’ΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π° Π½Π΅ Π½Π° nginx proxy.
Π§ΡΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ http Π·Π°ΠΏΡΠΎΡΠΎΠ² nginx ΠΈΠ»ΠΈ haproxy?
ΠΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ. Π ΡΠ΅ΠΌ-ΡΠΎ ΡΡΠΎ ΡΡ ΠΎΠΆΠΈΠΉ ΡΠΎΡΡ, Π½ΠΎ Π΅ΡΡΡ ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π² ΡΡΠ°ΡΡΠ΅, ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅Ρ. Π£ haproxy Π² Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² nginx plus. Π’Π°ΠΊ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π·Π°Π΄Π°ΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π»ΡΡΡΠ΅.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»ΠΈ nginx Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ proxy_pass Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ?
ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π΄Π°. ΠΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ½ΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»Ρ, Π΅ΡΠ»ΠΈ nginx ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ. Π‘ ΡΡΠ΅ΡΠΎΠΌ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΡΡΠΈΠΌΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅ΡΡ. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½ΠΈΡΡΠΎΠΆΠ½ΠΎ ΠΌΠ°Π»Ρ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΏΡΠΎΠΊΡΠΈΡΡΠ΅ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΌΠ΅ΠΆΠ΄Ρ nginx ΠΈ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠΌ. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡ Π΄Π΅Π»Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ, ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ Π΄ΡΡΠ³ ΠΊ Π΄ΡΡΠ³Ρ.
Π‘Π²Π΅ΠΆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ