배경
저는 슬랙이 너무 비싸서 질려서 매터머스(mattermost)로 교체하기로 결정했습니다. 퍼블릭 IP가 있는 AWS 우분투 상자를 얻었고 가장 중요한 것을 따랐습니다.설치 지침(가장 큰 차이점은 별도의 DB 서버와 스토리지 서버 등을 갖는 것이 아니라 동일한 서버에서 모든 것을 실행한다는 것입니다. 모두 동일한 시스템에서 실행됩니다.http://127.0.0.1)
내 도메인(lobolabshq.com)은 다음에서 관리됩니다.윅스, 그래서 하위 도메인을 추가했습니다.Mattmost.lobolabshq.com
AWS 상자에 가장 중요한 서버를 설치한 다음 nginx 서버에 대한 요청을 프록시하도록 nginx를 설정했습니다. 내 nginx 프록시 구성은 /etc/nginx/sites-available/mattermost
다음과 같이 저장됩니다 .
upstream backend {
server 127.0.0.1:8065;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name mattermost.lobolabshq.com;
location /api/v3/users/websocket {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_pass http://backend;
}
}
문제
내가 갈 때http://mattermost.lobolabshq.com다음 오류를 반환합니다.
네트워크 오류(tcp_error)
통신 오류가 발생했습니다: "작업 시간 초과" 웹 서버가 다운되었거나 사용량이 많거나 기타 문제로 인해 요청에 응답할 수 없습니다. 나중에 다시 시도해 보세요.
분석/내가 시도한 것
가장 중요한 서버는 로컬에서 잘 실행됩니다.
나는 내 가장 중요한 서버가 로컬에서 잘 실행되고 있다는 것을 알고 있습니다.문서실행하면 curl http://127.0.0.01:8065
가장 중요한 환영 페이지가 반환됩니다.
nginx 서버가 성공적으로 요청을 :80 포트로 다시 라우팅합니다.
나는 nginx가 잘 실행되고 있다는 것을 알고 있습니다. b/c를 실행할 때 curl http://localhost
또는 curl http://127.0.0.1
나는 또한 동일한 중요한 환영 페이지를 얻습니다.
도메인이 AWS 시스템을 가리키고 있습니다.
나는 그것을 알고 있다http://mattermost.lobolabshq.com또한 내 aws box 공개 IP를 가리킵니다.
dig mattermost.lobolabshq.com
; <<>> DiG 9.8.3-P1 <<>> mattermost.lobolabshq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62124
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mattermost.lobolabshq.com. IN A
;; ANSWER SECTION:
mattermost.lobolabshq.com. 1800 IN A 54.165.78.199
netstat 출력
sudo netstat -anp | grep tcp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1803/nginx -g daemo
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1134/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1249/postgres
tcp 0 0 172.31.50.32:22 185.81.141.147:54411 ESTABLISHED 1860/sshd: ubuntu [
tcp 0 72 172.31.50.32:22 185.81.141.147:60344 ESTABLISHED 1603/sshd: ubuntu [
tcp6 0 0 :::22 :::* LISTEN 1134/sshd
tcp6 0 0 :::8065 :::*
외부 요청이 nnix에 전달되지 않습니다.
로컬에서 실행하면 curl localhost
nginx 액세스 로그가 업데이트됩니다.
127.0.0.1 - - [18/Jan/2017:06:41:09 +0000] "GET / HTTP/1.1" 200 2246 "-" "curl/7.47.0"
하지만 브라우저에서 Mattmost.lobolabshq.com을 방문하면 그런 항목이 표시되지 않습니다.
답변1
내 aws 박스가 속한 보안 그룹을 업데이트하고 포트 80에서 들어오는 모든 TCP 연결이 작동하도록 허용하면 되었습니다.