Nginx, AWS, EB, Docker, TCP 소켓 구성 400 잘못된 요청

DR.

포트 80에서 순수 TCP 소켓 연결을 포트 80에서도 AWS의 Docker 컨테이너에 연결하려고합니다. 지금까지 다음과 같이했습니다.

  • 로드 밸런서에서 포트 80이 통과 할 수 있도록 올바른 보안 그룹을 설정하십시오. http가 아닌 tcp 연결로 설정됩니다.

  • EB에서 만든 e2c 인스턴스에서 nginx 로그를 볼 수 있습니다. 보고서는 다음과 같습니다.

172.31.22.8--[2017/01/12 : 20 : 44 : 43 +0000] "... data ..."400173 "-" "-"

  • 그리고 소켓을 만드는 프로그램은 다음을보고합니다.
HTTP/1.1 400 Bad Request
Server: nginx/1.10.1
Date: Thu, 12 Jan 2017 21:05:54 GMT
Content-Type: text/html
Content-Length: 173
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>

다양한 nginx 구성 시도했지만 기본적으로 구성 시작하기 전에는 다음과 같습니다.

/etc/nginx/nginx.conf

# Elastic Beanstalk Nginx Configuration File

user  nginx;
worker_processes  auto;

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

pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

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

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

    log_format  healthd '$msec"$uri"$status"$request_time"$upstream_response_time"$http_x_forwarded_for';

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

/etc/nginx/conf.d/elasticbeanstalk-nginx-docker-upstream.conf

upstream docker {
        server 172.17.0.3:80;
        keepalive 256;
}

/etc/nginx/sites-enabled/elasticbeanstalk-nginx-docker-proxy.conf

server {
    listen 80;

    gzip on;
        gzip_comp_level 4;
        gzip_types text/html text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2})") {
        set $year $1;
        set $month $2;
        set $day $3;
        set $hour $4;
    }
    access_log /var/log/nginx/healthd/application.log.$year-$month-$day-$hour healthd;

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

    location / {
        proxy_pass            http://docker;
        proxy_http_version    1.1;

        proxy_set_header    Connection            $connection_upgrade;
        proxy_set_header    Upgrade                $http_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;
    }
}

데이터가 docker를 실행하는 nginx e2c 인스턴스에 도달하기 때문에 Loadbalancer가 작동하고 있음을 알고 있습니다. 그러나 nginx는 요청을 도커 컨테이너로 전달하지 않습니다. 예, 컨테이너의 포트 80에서 실행되는 애플리케이션이 있습니다. 이는 포트 80에서 0.0.0.0에 바인딩 된 C 소켓입니다. HTTTP가 맞지 않습니까? TCP입니까?

그래서 내 질문에, nginx가 TCP 소켓 연결을 도커 컨테이너로 전달하려면 구성 파일이 무엇이어야합니까 ??

DR.

이 글을 올린 지 약 10 개월이 지났습니다. AWS에는 Network Load Balancer라는 것이 없습니다. 나는 그것을 시도하지 않았지만 고정 세션이있는 순수한 TCP 소켓을 허용해야한다고 생각합니다. 그래서 나는 그것을 시도 할 때까지 이것을 닫습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

소켓이있는 Python GET 요청-400 잘못된 요청

분류에서Dev

파이썬 소켓 잘못된 요청 400

분류에서Dev

Python 소켓 GET 요청으로 400 잘못된 요청 오류 받기

분류에서Dev

Docker, Node 및 Nginx 구성 문제가있는 AWS EB

분류에서Dev

Java 소켓이 HTTP / 1.1 400 잘못된 요청을받습니다.

분류에서Dev

gunicorn 및 nginx로 실행되는 django : 400 잘못된 요청

분류에서Dev

잘못된 요청 (400) 및 502 오류 : Nginx, gunicorn, django

분류에서Dev

IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

분류에서Dev

AJAX : 400 잘못된 요청

분류에서Dev

$ .ajax 400 잘못된 요청

분류에서Dev

Angularjs 잘못된 요청 (400)

분류에서Dev

Guzzle 400 잘못된 요청

분류에서Dev

개체 속성이 잘못된 경우 WCF (400) 잘못된 요청

분류에서Dev

잘못된 요청 소켓 파이썬

분류에서Dev

Python 3에서 소켓을 사용하여 400 잘못된 요청 오류 받기

분류에서Dev

vuejs 잘못된 구성 요소 정의

분류에서Dev

Firebase 호스팅 400 잘못된 요청

분류에서Dev

Django Localhost의 잘못된 요청 (400)

분류에서Dev

POST 400 잘못된 요청 React 인증

분류에서Dev

400 잘못된 Perlbrew 설치 요청

분류에서Dev

AJAX 오류 : 400 잘못된 요청

분류에서Dev

VSTS Nuget 푸시 : 400 (잘못된 요청)

분류에서Dev

400 잘못된 요청 SEC-43

분류에서Dev

Php Curl HTTP / 1.1 400 잘못된 요청

분류에서Dev

이미지 소스 바인딩에 대한 VueJS 400 잘못된 요청

분류에서Dev

전보 봇 및 SendMessage parse_mode는 HTTP / 1.1 400 잘못된 요청을 생성

분류에서Dev

400 잘못된 요청 잘못된 동사 SharePoint Rest API Java

분류에서Dev

AWS S3-미리 서명 된 URL을 통해 파일을 PUTting 할 때 400 잘못된 요청

분류에서Dev

Docker 버전 18.09.7의 경우 400 잘못된 요청으로 docker 로그인 실패, 빌드 2d0083d

Related 관련 기사

  1. 1

    소켓이있는 Python GET 요청-400 잘못된 요청

  2. 2

    파이썬 소켓 잘못된 요청 400

  3. 3

    Python 소켓 GET 요청으로 400 잘못된 요청 오류 받기

  4. 4

    Docker, Node 및 Nginx 구성 문제가있는 AWS EB

  5. 5

    Java 소켓이 HTTP / 1.1 400 잘못된 요청을받습니다.

  6. 6

    gunicorn 및 nginx로 실행되는 django : 400 잘못된 요청

  7. 7

    잘못된 요청 (400) 및 502 오류 : Nginx, gunicorn, django

  8. 8

    IAM이 활성화 된 상태에서 AWS Neptune에 연결을 시도 할 때 400 개의 잘못된 요청

  9. 9

    AJAX : 400 잘못된 요청

  10. 10

    $ .ajax 400 잘못된 요청

  11. 11

    Angularjs 잘못된 요청 (400)

  12. 12

    Guzzle 400 잘못된 요청

  13. 13

    개체 속성이 잘못된 경우 WCF (400) 잘못된 요청

  14. 14

    잘못된 요청 소켓 파이썬

  15. 15

    Python 3에서 소켓을 사용하여 400 잘못된 요청 오류 받기

  16. 16

    vuejs 잘못된 구성 요소 정의

  17. 17

    Firebase 호스팅 400 잘못된 요청

  18. 18

    Django Localhost의 잘못된 요청 (400)

  19. 19

    POST 400 잘못된 요청 React 인증

  20. 20

    400 잘못된 Perlbrew 설치 요청

  21. 21

    AJAX 오류 : 400 잘못된 요청

  22. 22

    VSTS Nuget 푸시 : 400 (잘못된 요청)

  23. 23

    400 잘못된 요청 SEC-43

  24. 24

    Php Curl HTTP / 1.1 400 잘못된 요청

  25. 25

    이미지 소스 바인딩에 대한 VueJS 400 잘못된 요청

  26. 26

    전보 봇 및 SendMessage parse_mode는 HTTP / 1.1 400 잘못된 요청을 생성

  27. 27

    400 잘못된 요청 잘못된 동사 SharePoint Rest API Java

  28. 28

    AWS S3-미리 서명 된 URL을 통해 파일을 PUTting 할 때 400 잘못된 요청

  29. 29

    Docker 버전 18.09.7의 경우 400 잘못된 요청으로 docker 로그인 실패, 빌드 2d0083d

뜨겁다태그

보관