# Unix:/var/discourse/shared/standalone/nginx.http.sock (2: 파일 또는 디렉터리 없음) \[해결됨\]

**URL:** https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342
**Category:** Self-hosting
**Created:** [2월 22, 2020, 12:40오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342 "2020-02-22T12:40:30Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![pr0cesor](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@pr0cesor](https://meta.discourse.org/u/pr0cesor)
#### Post date: [2월 22, 2020, 12:40오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/1 "2020-02-22T12:40:30Z")

</div>

안녕하세요,

제 웹사이트에서 502 Bad Gateway 오류가 발생했고, nginx.http.sock 관련 문제를 해결하지 못하고 있습니다.

Nginx error.log

> `[crit] 14339#14339: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: **.***. ***.*** , server: mydomain.net, request: "GET / HTTP/2.0", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "mydomain.net", referrer: "https:/mydomain.net/" "`

아래는 제 discourse.conf 파일입니다.

> ```
> server {
> listen 80;
> listen [::]:80;
> server_name mydmain.net www.mydomain.net; # <-- 이 부분을 변경하세요
> 
> }
> 
> server {
> listen 443 ssl http2;
> listen [::]:443 ssl http2;
> server_name mydomain www.mydomain.net; # <-- 이 부분을 변경하세요
> 
> ssl on;
> ssl_certificate /etc/letsencrypt/live/mydomain.net/fullchain.pem; # managed by Certbot
> ssl_certificate_key /etc/letsencrypt/live/mydomain.net/privkey.pem; # managed by Certbot
> ssl_dhparam /etc/letsencrypt/live/mydomain.net/dhparams.pem;
> include /etc/nginx/snippets/ssl.conf;
> 
> http2_idle_timeout 5m; # 기본값 3m에서 5m로 상향 조정
> 
> location / {
> proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
> proxy_set_header Host $http_host;
> proxy_http_version 1.1;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header X-Forwarded-Proto https;
> proxy_set_header X-Real-IP $remote_addr;
> 
> }
> }
> 
> ```

제 app.yml 파일입니다.

> ```
> templates:
> - "templates/postgres.template.yml"
> - "templates/redis.template.yml"
> - "templates/web.template.yml"
> - "templates/sshd.template.yml"
> - "templates/web.ratelimited.template.yml"
> ## Lets Encrypt(https)를 추가하려면 아래 두 줄의 주석을 해제하세요
> - "templates/web.ssl.template.yml"
> - "templates/web.letsencrypt.ssl.template.yml"
> ## - "templates/web.socketed.template.yml"
> ## 이 컨테이너가 어떤 TCP/IP 포트를 노출해야 하나요?
> ## Apache나 nginx 같은 다른 웹서버와 Discourse가 포트를 공유하려면
> ## 자세한 내용은 https://meta.discourse.org/t/17247 를 참조하세요
> #expose:
> # - "2045:80" # http
> # - "1443:443" # https
> 
> ```

"templates/web.socketed.template.yml"의 주석도 해제해 보았지만 Nginx 에러 로그에는 동일한 결과가 나타납니다. 이 문제를 해결하려면 어떻게 해야 하나요? 더 이상 아이디어가 없습니다. 도와주세요 ;/

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [2월 22, 2020, 1:43오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/2 "2020-02-22T13:43:59Z")

</div>

저는 전문가가 아니지만, 제가 틀린 게 아니라면 소켓 방식을 선택하는 경우 `web.socketed.template` 주석을 해제해야 할 가능성이 큽니다.

---

<div class="post-metadata">

### Author: ![pr0cesor](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@pr0cesor](https://meta.discourse.org/u/pr0cesor)
#### Post date: [2월 22, 2020, 2:31오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/3 "2020-02-22T14:31:30Z")

</div>

저는 이미 그렇게 했는데도 결과가 똑같아요.

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [2월 22, 2020, 3:15오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/4 "2020-02-22T15:15:21Z")

</div>

내 설치 환경에서 직접 테스트해 보았습니다(기존에는 포트 리스닝 방식을 사용 중이었음)가 정상적으로 동작합니다.

다음 사항을 확인해 주세요:

- SSL/Let’s Encrypt 템플릿은 주석 처리해야 합니다. 외부 Nginx 설정에서 이미 처리되고 있기 때문입니다.
- 앱을 다시 빌드하여 `/var/discourse/shared/standalone/` 디렉토리에 `nginx.http.sock` 파일이 생성되도록 하세요.

---

<div class="post-metadata">

### Author: ![pr0cesor](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@pr0cesor](https://meta.discourse.org/u/pr0cesor)
#### Post date: [2월 22, 2020, 3:38오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/5 "2020-02-22T15:38:28Z")

</div>

> 다음 사항들을 확인하세요.
> 
> - SSL/Let’s Encrypt 템플릿은 외부 Nginx 설정에서 이미 관리되고 있으므로 주석 처리되어 있는지 확인하세요.
> - `nginx.http.sock` 파일이 `/var/discourse/shared/standalone/`에 생성되도록 앱을 다시 빌드하세요.

알겠습니다. 그런데 이 줄은 어떻게 되나요? 502 게이트웨이 오류는 사라졌고 웹사이트는 올라와 있지만, 이 줄 때문에 동일한 nginx 오류가 보입니다.

> ```
> location / {
> proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
> 
> ```

SSL이 작동하지 않는 것 같고 이미지도 표시되지 않습니다. 포럼 설정 시 로고를 업로드했는데

 ![sssl](https://global.discourse-cdn.com/meta/original/3X/d/e/de6107d894ac2d0ae02c7ac1014ee8f929083012.jpeg)

 ![sssl_notsecure](https://global.discourse-cdn.com/meta/original/3X/a/8/a8db95ede5f4a9067e7b9e9189344ab706183d05.jpeg)

 ![sssl_notsecure2](https://global.discourse-cdn.com/meta/original/3X/1/6/16689b759f978e8c65f441668c62a4b5f8d8c774.jpeg)

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [2월 22, 2020, 3:42오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/6 "2020-02-22T15:42:12Z")

</div>

아직 처리하지 않았다면, `force https` discourse 옵션(보안 탭)을 활성화해 보세요.

---

<div class="post-metadata">

### Author: ![pr0cesor](https://avatars.discourse-cdn.com/v4/letter/p/977dab/32.png) [@pr0cesor](https://meta.discourse.org/u/pr0cesor)
#### Post date: [2월 22, 2020, 3:46오후 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/7 "2020-02-22T15:46:34Z")

</div>

오마이갓!!! 고마워요 \<3 . 과일 좀 사줄게요 😃 . 근데 SMTP 설정을 어떻게 해야 하는지 알아내야 해요. Yandex를 쓰니까 안 되어서 테스트 유저를 등록할 때 이메일이 전혀 안 오거든요,

---

<div class="post-metadata">

### Author: ![Mednosis](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mednosis/32/175309_2.png) [@Mednosis](https://meta.discourse.org/u/Mednosis)
#### Post date: [4월 2, 2020, 12:29오전 UTC](https://meta.discourse.org/t/unix-var-discourse-shared-standalone-nginx-http-sock-2-no-such-file-or-directory-solved/142342/8 "2020-04-02T00:29:29Z")

</div>

위에서 제시된 모든 방법을 시도해 보았지만 여전히 502 bad gateway 오류가 발생합니다. 현재 저는 HTTPS를 사용하지 않고 있습니다.

다음은 제 오류 메시지입니다:

```
> 2020/04/02 00:17:54 [crit] 18599#18599: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: xx.xxx.xxx.xx, server: talk.mydomain.com, request: "GET / HTTP/1.1", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/", host: "talk.mydomain.com"
> 
> 2020/04/02 00:17:54 [crit] 18599#18599: *1 connect() to unix:/var/discourse/shared/standalone/nginx.http.sock failed (2: No such file or directory) while connecting to upstream, client: xx.xxx.xxx.xx, server: talk.mydomain.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/var/discourse/shared/standalone/nginx.http.sock:/favicon.ico", host: "talk.mydomain.com", referrer: "http://talk.mydomain.com/"

```

다음은 제 /etc/nginx/sites-enabled/discourse.conf 파일 내용입니다:

```
server {
        listen 80; listen [::]:80;
        server_name talk.mydomain.com;
        location / {
                proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
                proxy_set_header Host $http_host;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

```

다음은 /var/discourse/containers/app.yml 파일의 템플릿 섹션입니다:

```
server {
        listen 80; listen [::]:80;
        server_name talk.mydomain.com;
        location / {
                proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
                proxy_set_header Host $http_host;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
        }
}

```

조언을 부탁드립니다.
