Điểm:0

nginx đang nhận GET/yêu cầu mặc dù nó sai

lá cờ us

Vì vậy, tôi chạy một nginx container với docker-compose:

dịch vụ:
  nginx:
    xây dựng:
      bối cảnh: .
      dockerfile: dockerfile
    khởi động lại: luôn luôn
    container_name: webserver_nginx
    tên máy chủ: nginx
    stop_grace_period: 1m30s

    kiểm tra sức khỏe:
      kiểm tra: ["CMD-SHELL", "curl -sf http://127.0.0.1/ -o /dev/null || thoát 1"]
      khoảng cách: 1m30s
      thời gian chờ: 10s
      thử lại: 3
      start_period: 40s

    cổng:
      - 443:443
      - 80:80

    khối lượng:
      # Hạn chế dịch vụ bằng mật khẩu
      - ./.credentials/.htpasswd:/var/.credentials/.htpasswd

      # Cấu hình Nginx
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./proxy_params:/etc/nginx/proxy_params
      - ./conf:/etc/nginx/conf.d

      #Nginx phục vụ các tệp tĩnh
      - /var/backups/off:/var/web_data/off


      # Ghi nhật ký Nginx
      - /var/log/nginx:/var/log/nginx

    mạng:
      - máy chủ web_mạng

mạng:
  máy chủ web_mạng:
    bên ngoài: đúng

Dockerfile:

TỪ nginx

CMD ["nginx", "-g", "tắt daemon;"]

nginx.conf của tôi:

người dùng nginx;
worker_processes tự động;

error_log /var/log/nginx/error.log cảnh báo;
pid /var/run/nginx.pid;

sự kiện {
    công_nhân kết_nối 1024 ;
}

http {
    bao gồm /etc/nginx/mime.types;
    ứng dụng default_type/octet-stream;

    log_format chính '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log chính;

    gửi tệp trên;
    keepalive_timeout 65;

    bao gồm /etc/nginx/conf.d/*.conf;
}

và cấu hình cho vùng chứa của tôi:

người phục vụ {
  nghe 80;
  nghe [::]:80;

  server_name name.com;

  vị trí / quản trị viên {
    proxy_pass http://off:4000;
    proxy_set_header Máy chủ lưu trữ $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout 100;
    proxy_http_version 1.1;
  }
  vị trí/tĩnh {
    bí danh /var/web_data/off/collectstatic;
  }

  địa điểm/phương tiện {
    bí danh /var/web_data/off/upload;
  }

  địa điểm / {
    trả lại 404;
  }
}

vì vậy bất cứ khi nào tôi cố gắng yêu cầu http://name.com/admin tôi nhận được loại nhật ký này từ access.log:

127.0.0.1 - - [16/May/2022:15:53:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:55:12 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:56:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"

và tôi gặp lỗi 502 Gateway từ nginx trên trình duyệt ngay cả khi tôi cố gắng truy cập trang web chính như http://name.com/ tôi liên tục gặp lỗi 502 vùng chứa của tôi soạn giống như:

phiên bản: '3.8'

dịch vụ:
  tắt:
    xây dựng:
      bối cảnh: .
      dockerfile: triển khai/beta/Dockerfile
      lập luận:
        WORKING_DIR: /ứng dụng
    container_name: tắt
    tên máy chủ: django
    khởi động lại: 'luôn luôn'

    lệnh: gunicorn -c triển khai/beta/configs/gunicorn/conf.py --chdir api api.wsgi:application

    khối lượng:
      # Mã nguồn dự án
      - .:/ứng dụng
      # Thu thập tệp tĩnh
      - /var/backups/offch/collectstatic:/collectstatic
      # Tệp phương tiện (Tải lên)
      - /var/backups/offch/upload:/app/media/upload
      - /var/log/upstart:/var/log/upstart

    stop_grace_period: 1m30s

    kiểm tra sức khỏe:
      kiểm tra: ["CMD", "curl", "-f", "http://127.0.0.1:4000"]
      khoảng cách: 1m30s
      thời gian chờ: 10s
      thử lại: 3
      start_period: 40s

    cổng:
      - "4000:4000"

    mạng:
      - máy chủ web_mạng

mạng:
  máy chủ web_mạng:
    bên ngoài: đúng

Nhân tiện, tôi có thể truy cập trang web thông qua ip và cổng. Tôi chỉ gặp sự cố này với nginx.

djdomi avatar
lá cờ za
xin chào, nó quan trọng những gì bạn muốn sử dụng. điều đó có nghĩa là bạn nên sử dụng 404 trước và sau đó là chỉ thị của quản trị viên
scaryhamid avatar
lá cờ us
@djdomi xin chào, cảm ơn vì đã trả lời nhưng nó không hoạt động. Tôi vẫn nhận được cùng một bản ghi từ nginx access.log, tôi đã sử dụng cấu hình này trên một máy chủ khác và tôi chỉ gặp sự cố này ở đây
djdomi avatar
lá cờ za
những gì đã xảy ra trong khi bạn tắt phần cuối cùng và không hoạt động không phải là mô tả lỗi;) nếu bạn thay đổi cấu hình hoặc môi trường, bạn cũng cần phản ánh các thay đổi đối với câu hỏi, vui lòng hiển thị đầu ra của `nginx -T`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.