From 48e588bb828fcc061e9b7c7a8bc625197a418899 Mon Sep 17 00:00:00 2001 From: Zikil Date: Wed, 2 Apr 2025 08:42:02 +0700 Subject: [PATCH] fix db --- .DS_Store | Bin 10244 -> 12292 bytes backend/.DS_Store | Bin 6148 -> 6148 bytes backend/app/.DS_Store | Bin 6148 -> 6148 bytes backend/app/core.py | 2 +- certbot/.DS_Store | Bin 0 -> 6148 bytes docker-compose.prod.yml | 2 +- frontend/.DS_Store | Bin 8196 -> 8196 bytes frontend/app/(main)/.DS_Store | Bin 8196 -> 8196 bytes frontend/app/.DS_Store | Bin 10244 -> 10244 bytes frontend/certbot/.DS_Store | Bin 0 -> 6148 bytes frontend/components/.DS_Store | Bin 8196 -> 8196 bytes nginx/nginx.conf | 56 +++++++++++++++++++++++++- nginx/nginx.prod.conf | 72 ++++++++++++++++++++++++++++++++-- 13 files changed, 125 insertions(+), 7 deletions(-) create mode 100644 certbot/.DS_Store create mode 100644 frontend/certbot/.DS_Store diff --git a/.DS_Store b/.DS_Store index b7db6ae001b4674dc7f527e19e497adf95ae9c9a..c0b93f1de90fbd273a6eea89e3d9630a8be41092 100644 GIT binary patch delta 1461 zcmZn(Xh~3DU|?W$DortDV9)?EIe-{M3-B;7uy8RjC~!|yP?u!}DFR|EAO^Ap7#Q*x zQW)YHk{R+DayJ$(W}a-I!omtt!7}-Sw9;lrQEO(7`@Q?IX|}msE5H_Qed)yunW*iuq{A}gL`A4ILl^ro+r$VGGHU;NeHslvjXi+XUGJS z6*=h${R|B1N{ zlp%>B2k4GuR966%FfgFVBfI0rqXLI}XTa`2Q-g2`E;R_Zu!1d_oGia&V?z!*qwHiJ zftB?iFM-05g+UJ-Iwi=qmL;v6rUmgml03pjZ1M=(7#P@{5bT2(on~ zrQXd3!tWU;%gap|O`!}7TA-)~0~TORrvh1!G|QmD4P?6_mn|C$-!o6 zQBJyHaB}|UMu{%=i4BsRKp7C=;0B6_vusx9dBV)7H5Cboctt^VxOuFkN%!L=7=hvf>*vE17vS*0Zln-3_zXWT5n63aYUfJJq)p#UG--Ajk}IEiibwfrKk4h&Kyzd}p4_uj4t{pNE5k2@?7mlM{4iPM)YL2Q=j=699q$ BZ?pga diff --git a/backend/.DS_Store b/backend/.DS_Store index d9b8b2d8eb1aadcea9e91ff44c03f69b259a291a..ae32252f018f668c191629d07bcb7527556e2d36 100644 GIT binary patch delta 14 VcmZoMXffEZm4)%&=4~u~!T>B_1)l%_ delta 14 VcmZoMXffEZm4)%_=4~u~!T>8e1#SQU diff --git a/backend/app/.DS_Store b/backend/app/.DS_Store index 62688d59caf712a81d2ef6371d4f85acbd7c49e3..093f4c64ef71403aa69dc7de8d6075ee57842209 100644 GIT binary patch delta 34 qcmZoMXffDe!ot+{Ycdau)Z_pb9=0#8G8GEvCQo3I*<8ocCJX?_D+^Ts delta 27 icmZoMXffDe!ot+fGMR@(YH|Pz&*Ux^rOkCLZNdO-X9u4E diff --git a/backend/app/core.py b/backend/app/core.py index 3ec3a2f..63e4190 100644 --- a/backend/app/core.py +++ b/backend/app/core.py @@ -12,7 +12,7 @@ from sqlalchemy.orm import Session from app.config import settings # Настройка SQLAlchemy -SQLALCHEMY_DATABASE_URL = settings.DATABASE_URL +SQLALCHEMY_DATABASE_URL = "postgresql://gen_user:F%2BgEEiP3h7yB6d@93.183.81.86:5432/shop_db" engine = create_engine(SQLALCHEMY_DATABASE_URL) SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) diff --git a/certbot/.DS_Store b/certbot/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..004ab55079948c3331bd1401a10dc81e9346c54c GIT binary patch literal 6148 zcmeHKy-ve05Wb@sBC&L2^vK#bFjbJ)D~4{Ut$?AyT@b6^fRQ(1oY;yFw#+}p3zzIzKNNT3sOY^j;0%lznCWyb z_x~;aGSwn~9O5%)z!~^w3~70#a<@VV2bj=O%jz$iSF60y4}R(-bCm z3#_y;31VPiU}i{UC}1ea&3AE0%E?axig5giQ0C@7cgzu4HU&*~a)F>!{Q;l~26l#I zhE#?kh7yJ(hJ1#SoOHwBOopV~e1vV7 zvM81?D}X%4%8V r8A#?aGcZg}5Rus&AhMl#V}k(WW_F2hERzkz6gKOM-D2F>z{>~#kLXY1 diff --git a/frontend/app/(main)/.DS_Store b/frontend/app/(main)/.DS_Store index 2a0b9c6bce0d24aa2888ad94298b3ac082477a79..08b5284024efee5ff39934e234045affeaf1de75 100644 GIT binary patch delta 33 pcmZp1XmQvuN04dV!pZXlbC@nLOg0b_nXDkh$CUJ8vw_eRUI5V;3!MM} delta 33 pcmZp1XmQvuN04dt$;tBsbC?b=Og0b_nXDkh#}qejvw_eRUI5W$3tRvI diff --git a/frontend/app/.DS_Store b/frontend/app/.DS_Store index 23a91656a676c4652d76e7f14900da0fe67903de..c87f0bf9e9342b460d5e2d44683dacd866869900 100644 GIT binary patch delta 515 zcmZn(XbG6$&*-o*U^hRb!(<)-IVPTalXV2r7(Z;DETG58_a*CV$DBTfS9J=C zYF+%w3o?+MA+UM2kPc%#KhTjG45?tJ<^vsz*XgpGfDR*|1KA6FOH9v0-GoDzA1sV= n^AUa_tPQ3M)k_KtlivwTZN4YGl4~=&!Y>wQc<4}U;xZ-xPAPmE delta 66 zcmV-I0KNZ&P=rvBPXRcwP`eKSIFk$z9s&illPnNs0pPQf5H0}$s*}PI-Lp>Qkr3bcj?gF;V^yKM z%Kq&8@i|{qJ4ZykeAzCD=0wz@39<|-BI>H?!kop(vc~RlvD&15Us>c_RkHVnHk9a@ z9xD4EY<=pw^)9X9-yYs>UavntZjWR8wEfe*f0}SJql5e^SHfp4~&LO=ij literal 0 HcmV?d00001 diff --git a/frontend/components/.DS_Store b/frontend/components/.DS_Store index c63e3e01795e31c59e23c83a0d795f0f1aeadb03..329773164fcc0ba4726647f3428b4c2068041510 100644 GIT binary patch delta 15 WcmZp1XmQw(BFwZSWOJJEJRSfp$_11F delta 15 WcmZp1XmQw(BFwZsZ*!XPJRSfqUj?lI diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 1cccfc6..aabc7e7 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -2,8 +2,33 @@ server { listen 80; server_name localhost; - # Размер загружаемых файлов + # Настройка буферов для улучшения производительности + client_body_buffer_size 128k; client_max_body_size 20M; + client_body_timeout 60s; + + # Буферизация для проксирования + proxy_buffers 16 32k; + proxy_buffer_size 64k; + proxy_busy_buffers_size 128k; + proxy_temp_file_write_size 256k; + + # Настройка сжатия + gzip on; + gzip_comp_level 5; + gzip_min_length 256; + gzip_proxied any; + gzip_vary on; + gzip_types + application/javascript + application/json + application/xml + application/xml+rss + image/svg+xml + text/css + text/javascript + text/plain + text/xml; # Frontend (Next.js) location / { @@ -13,6 +38,9 @@ server { proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; + proxy_read_timeout 60s; + proxy_connect_timeout 60s; + proxy_send_timeout 60s; } # Backend API @@ -23,6 +51,9 @@ server { proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; + proxy_read_timeout 60s; + proxy_connect_timeout 60s; + proxy_send_timeout 60s; } # Docs для API @@ -53,11 +84,32 @@ server { proxy_cache_bypass $http_upgrade; } - # Статические файлы и загруженные изображения + # Статические файлы и загруженные изображения location /uploads/ { alias /app/uploads/; + + # Настройки кэширования для оптимизации загрузки expires 30d; add_header Cache-Control "public, max-age=2592000"; + add_header Access-Control-Allow-Origin *; + + # Настройки для эффективной отдачи статических файлов + tcp_nodelay on; + tcp_nopush on; + sendfile on; + sendfile_max_chunk 1m; + + # Отключаем логирование для статики access_log off; + + # Заголовки для изображений разных форматов + location ~* \.(jpg|jpeg|png|gif|ico|webp)$ { + expires 30d; + add_header Cache-Control "public, max-age=2592000"; + add_header Pragma public; + add_header Vary Accept-Encoding; + access_log off; + try_files $uri $uri/ =404; + } } } \ No newline at end of file diff --git a/nginx/nginx.prod.conf b/nginx/nginx.prod.conf index 64d2664..7daecb3 100644 --- a/nginx/nginx.prod.conf +++ b/nginx/nginx.prod.conf @@ -22,20 +22,51 @@ server { ssl_certificate_key /etc/letsencrypt/live/dressedforsuccess.shop/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/dressedforsuccess.shop/chain.pem; - # Настройки SSL + # Оптимизация SSL ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384'; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; + ssl_session_tickets off; ssl_stapling on; ssl_stapling_verify on; + resolver 8.8.8.8 8.8.4.4 valid=300s; + resolver_timeout 5s; - # Размер загружаемых файлов + # Настройка буферов для улучшения производительности + client_body_buffer_size 128k; client_max_body_size 20M; + client_body_timeout 60s; - # HSTS (предполагается использование сайта только через HTTPS) + # Буферизация для проксирования + proxy_buffers 16 32k; + proxy_buffer_size 64k; + proxy_busy_buffers_size 128k; + proxy_temp_file_write_size 256k; + + # Настройка сжатия + gzip on; + gzip_comp_level 5; + gzip_min_length 256; + gzip_proxied any; + gzip_vary on; + gzip_types + application/javascript + application/json + application/xml + application/xml+rss + image/svg+xml + text/css + text/javascript + text/plain + text/xml; + + # Заголовки безопасности add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + add_header X-Content-Type-Options nosniff; + add_header X-Frame-Options SAMEORIGIN; + add_header X-XSS-Protection "1; mode=block"; # Frontend (Next.js) location / { @@ -48,6 +79,9 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; + proxy_read_timeout 60s; + proxy_connect_timeout 60s; + proxy_send_timeout 60s; } # Backend API @@ -61,6 +95,9 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; + proxy_read_timeout 60s; + proxy_connect_timeout 60s; + proxy_send_timeout 60s; } # Docs для API @@ -103,9 +140,38 @@ server { # Статические файлы и загруженные изображения location /uploads/ { alias /app/uploads/; + + # Настройки кэширования для оптимизации загрузки expires 30d; add_header Cache-Control "public, max-age=2592000"; add_header Access-Control-Allow-Origin *; + + # Настройки для эффективной отдачи статических файлов + tcp_nodelay on; + tcp_nopush on; + sendfile on; + sendfile_max_chunk 1m; + + # Отключаем логирование для статики access_log off; + + # Настройки для изображений разных форматов + location ~* \.(jpg|jpeg|png|gif|ico|webp)$ { + expires 30d; + add_header Cache-Control "public, max-age=2592000"; + add_header Pragma public; + add_header Vary Accept-Encoding; + try_files $uri $uri/ =404; + + # Настройка для WebP - автоматическая подстановка WebP, если есть поддержка в браузере + add_header Vary Accept; + + # Включаем прямое чтение для статических файлов + directio 512; + directio_alignment 512; + + # Отключаем логирование для изображений + access_log off; + } } } \ No newline at end of file