Загрузка...

Problem with nginx in docker

Thread in Node.js created by RichPerson May 23, 2024. 217 views

  1. RichPerson
    RichPerson Topic starter May 23, 2024 Разработка - https://zelenka.guru/threads/4480553/ 2161 Sep 23, 2019
    Проблема возникает только при запросах авторизации. Остальные запросы ахуенно выполняются.
    После переноса проекта на docker появилась данная проблема.
    Прилагаю код конфига
    Code
    #default

    server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    server_name anytanks.com www.anytanks.com;

    client_body_timeout 5s;
    client_header_timeout 5s;

    client_max_body_size 10m;
    client_body_buffer_size 128k;

    location / {
    try_files $uri $uri/ /index.html;
    }

    location /api {
    proxy_pass http://server:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    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_connect_timeout 60s;
    proxy_send_timeout 90s;
    proxy_read_timeout 90s;
    proxy_cache_bypass $http_upgrade;

    }
    }

    server {

    root /var/www/html;

    server_name anytanks.com; # managed by Certbot

    client_body_timeout 5s;
    client_header_timeout 5s;

    client_max_body_size 10m;
    client_body_buffer_size 128k;

    location / {
    try_files $uri $uri/ /index.html;
    }

    location /api {
    proxy_pass http://server:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    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_connect_timeout 60s;
    proxy_send_timeout 90s;
    proxy_read_timeout 90s;
    proxy_cache_bypass $http_upgrade;
    }


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/anytanks.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/anytanks.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    }#server {
    #if ($host = anytanks.com) {
    # return 301 https://$host$request_uri;
    #} # managed by Certbot


    #listen 80 ;
    #listen [::]:80 ;
    #server_name anytanks.com;
    # return 404; # managed by Certbot


    #}

    Code
    #nginx.conf

    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;

    events {
    worker_connections 768;
    }

    http {

    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    include /etc/nginx/sites-available/*;
    }

    Code
    #Dockerfile

    FROM node:18.17.1-alpine as builder

    WORKDIR /app

    COPY package.json yarn.lock ./

    RUN yarn install

    COPY . .

    RUN yarn run build



    FROM nginx

    WORKDIR /var/www/html

    RUN rm -rf ./*

    COPY --from=builder /app/build .

    ENTRYPOINT [ "nginx", "-g", "daemon off;" ]

    Code
    #docker-compose.yml

    client:
    container_name: client

    volumes:
    - ./client/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    - ./client/nginx/sites-available/default:/etc/nginx/sites-available/default:ro
    - /etc/letsencrypt/options-ssl-nginx.conf:/etc/letsencrypt/options-ssl-nginx.conf
    - /etc/letsencrypt/live/anytanks.com/fullchain.pem:/etc/letsencrypt/live/anytanks.com/fullchain.pem
    - /etc/letsencrypt/live/anytanks.com/privkey.pem:/etc/letsencrypt/live/anytanks.com/privkey.pem
    - /etc/letsencrypt/ssl-dhparams.pem:/etc/letsencrypt/ssl-dhparams.pem

    build: ./client

    restart: always

    ports:
    - 80:80
    - 443:443

    depends_on:
    - server
    [IMG]
     
  2. RichPerson
    RichPerson Topic starter May 23, 2024 Разработка - https://zelenka.guru/threads/4480553/ 2161 Sep 23, 2019
    В общем, если кто-то столкнется с данной проблемой, вся суть была в библиотеке bcrypt.
    Она била перезапуск приложения почему-то и в логах это не отображало в общем обработчике событий, только если само хеширование запихнуть в trycatch, тогда покажет, хотя на локалке все ворк.
    Вместо нее установите bcryptjs и проблема пропадет.
     
Loading...
Top