๐Ÿ‡จ๐Ÿ‡ณ Discourse ์‚ฌ์šฉ์ž ์ •๋ณด์˜ IP ์ฃผ์†Œ๊ฐ€ CloudFlare IP๋กœ ํ‘œ์‹œ๋จ

CloudFlare์˜ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ(์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ)๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Discourse๊ฐ€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” IP ์ฃผ์†Œ๋Š” ์‹ค์ œ๋กœ๋Š” CloudFlare ์„œ๋ฒ„์˜ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

์ˆ˜์ • ๋ฐฉ๋ฒ•

๋‹คํ–‰ํžˆ Discourse์—๋Š” ์ด๋ฏธ ๊ด€๋ จ ํ•ด๊ฒฐ์ฑ…์ด ์ œ๊ณต๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Discourse ์„ค์ • ํŒŒ์ผ์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • โ€œtemplates/cloudflare.template.ymlโ€


๊ทธ ํ›„ Discourse ์„ค์น˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œ(Build)ํ•ฉ๋‹ˆ๋‹ค.

./launcher rebuild app

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Discourse๋ฅผ ์ง์ ‘ ์žฌ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ๊ตฌ์ถ•์—๋Š” ์•ฝ 10๋ถ„์ด ์†Œ์š”๋˜๋ฉฐ, ์ด 10๋ถ„ ๋™์•ˆ์—๋Š” ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ์„ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ๊ณ ์นจํ•˜์—ฌ ํ™•์ธํ•ด ๋ณด๋ฉด, ์ด์ œ ์‹œ์Šคํ…œ์ด ์ •์ƒ์ ์ธ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

์„ ๋ฐฐ๋‹˜, ์ด๊ฑธ CloudFlare์˜ CDN ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•œ ๊ฐ€์†์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฑด๊ฐ€์š”? ์ œ ์ชฝ์—์„œ๋Š” CloudFlare์—์„œ ์›๋ณธ ์„œ๋ฒ„๋กœ 502 ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋œจ๊ณ , ๊ฐ€๋”์€ ์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ์„œ๋ฒ„๋Š” ์ค‘๊ตญ์— ์žˆ๋Š”๋ฐ, ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ์ธ์ง€ SSL ์ธ์ฆ์„œ ๋ฌธ์ œ์ธ์ง€, ์•„๋‹ˆ๋ฉด CloudFlare ์„ค์ •์—์„œ ํŠน๋ณ„ํžˆ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

์ €๋Š” CloudFlare ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ 502 ์˜ค๋ฅ˜๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์›๋ณธ ์„œ๋ฒ„์˜ ์‘๋‹ต ์‹œ๊ฐ„์ด ์„ค์ •๋œ ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. TCP ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ†ตํ•ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ „๋‹ฌํ•˜๋Š” ์„ค์ •์ด ์ œ๋Œ€๋กœ ๋˜์–ด ์žˆ์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์˜€๊ณ , ์ดํ›„ ์ฒ˜๋ฆฌ๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์›๋ณธ ์„œ๋ฒ„๊ฐ€ ์ค‘๊ตญ์— ์œ„์น˜ํ•ด ์žˆ์–ด CloudFlare๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์˜คํžˆ๋ ค ์†๋„๊ฐ€ ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ, ํ˜„์žฌ๋Š” CloudFlare ์‚ฌ์šฉ์„ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์ „๋‹ฌ์€ ์‚ฌ์šฉ์ž IP ์ฃผ์†Œ ํ•ด์„์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๋ฐ, real_ip_header์™€ proxy_protocol์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

ICP ๋“ฑ๋ก(ๅค‡ๆกˆ) ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ์„œ๋ฒ„๊ฐ€ ์ค‘๊ตญ ๋Œ€๋ฅ™ ๋‚ด์— ์œ„์น˜ํ•ด ์žˆ๋‹ค๋ฉด ICP ๋“ฑ๋ก์ด ๋ถˆํ•„์š”ํ•˜๋ฏ€๋กœ, CloudFlare๋ณด๋‹ค Tencent์˜ ์ „์ฒด ์‚ฌ์ดํŠธ ๋ฐ์ดํ„ฐ ๊ฐ€์†์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ICP ๋“ฑ๋ก(ๅ‚™ๆกˆ)์€ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์•Œ๋ฆฌ๋ฐ”๋ฐ” ํด๋ผ์šฐ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•ด ๋ดค๋Š”๋ฐ, ๊ฐ€์† ์„ฑ๋Šฅ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ, ์š”๊ธˆ์ด ๊ฝค ๋น„์ŒŒ์Šต๋‹ˆ๋‹ค. ํ…์„ผํŠธ ํด๋ผ์šฐ๋“œ์˜ ์š”๊ธˆ์€ ์–ด๋–ค๊ฐ€์š”? CloudFlare๋Š” ๋ฌด๋ฃŒ๋ผ๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋น„์‹ธ๋‹ค๊ณ ๋Š” ํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ด ์›น์‚ฌ์ดํŠธ: https://www.cwikius.cn/ ์— ํ…์„ผํŠธ ๊ฐ€์†์„ ์ ์šฉํ–ˆ๋Š”๋ฐ, ์›๋ž˜๋„ ํŠธ๋ž˜ํ”ฝ์ด ๊ฑฐ์˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์›” ์š”๊ธˆ์€ 5์œ„์•ˆ ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ „๋ฌธ๊ฐ€๋‹˜์˜ ํ”ผ๋“œ๋ฐฑ๊ณผ ์ง€์›์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด์ „์— Ubuntu๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‹ค์ œ IP๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์–ด์š”. ๊ทธ๋Ÿฐ๋ฐ Rocky 9.3์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์žฌ๋ถ€ํŒ…์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ ๋ฒ„์ „ ๋ฌธ์ œ์ผ ์ˆ˜๋„ ์žˆ๊ฒ ๋„ค์š”.

๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” ubuntu๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์–ด๋–ค ์šด์˜์ฒด์ œ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋А๋ƒ์— ๋”ฐ๋ผ ํฐ ์˜ํ–ฅ์€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Ubuntu 22.04๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
FAILED

Pups::ExecError: /tmp/add-cloudflare-ips ์‹คํ–‰ ์‹คํŒจ (์ข…๋ฃŒ ์ฝ”๋“œ: #<Process::Status: pid 4279 exit 8>)
์˜ค๋ฅ˜ ๋ฐœ์ƒ ์œ„์น˜: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawnโ€™
ํŒŒ๋ผ๋ฏธํ„ฐ "/tmp/add-cloudflare-ips"๋กœ ์‹คํ–‰ ์‹คํŒจ
๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์‹คํŒจ (์ข…๋ฃŒ ์ฝ”๋“œ 8)
** BOOTSTRAP ์‹คํŒจ ** ์ด์ „์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์˜ค๋ฅ˜๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
./discourse-doctor ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Discourse๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„์— Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‚˜์š”?

๊ทธ๋ ‡๋‹ค๋ฉด Docker ๋ฒ„์ „์€ ์–ผ๋งˆ์ธ๊ฐ€์š”?

Docker ๋ฒ„์ „ 26.0.0, ๋นŒ๋“œ 2ae903e

์ด์ „์— Oracle Cloud๋ฅผ ์“ธ ๋•Œ๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, ์ง€๊ธˆ์€ Alibaba Cloud์—์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ˜น์‹œ Alibaba Cloud์— ์–ด๋–ค ๋ณด์•ˆ ์กฐ์น˜๊ฐ€ ์žˆ๋Š” ๊ฑด๊ฐ€์š”?!

๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ตญ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋งŽ์€ ์šด์˜์ฒด์ œ ๋ฒ„์ „์€ ์ˆ˜์ •๋œ(๋ชจ๋“œ๋œ) ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ, ๊ฐ‘์ž๊ธฐ ์ด์œ  ์—†์ด ๋‹ค์‹œ ์ž˜ ์ž‘๋™ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹คโ€ฆ

์ด๊ฒƒ๋„ ์ข€ ๊ธฐ์ดํ•œ ์ƒํ™ฉ์ด๋„ค์š”. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋งŒ์œผ๋กœ๋Š” ๋ญ˜ ์•Œ ์ˆ˜๊ฐ€ ์—†์–ด์š”.

Pups::ExecError: /tmp/add-cloudflare-ips ์‹คํ–‰ ์‹คํŒจ (์ข…๋ฃŒ ์ฝ”๋“œ: #<Process::Status: pid 5134 exit 8>)
์‹คํŒจ ์œ„์น˜: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawnโ€™
ํŒŒ๋ผ๋ฏธํ„ฐ "/tmp/add-cloudflare-ips"๋กœ ์‹คํ–‰ ์‹คํŒจ
๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ด ์ข…๋ฃŒ ์ฝ”๋“œ 8๋กœ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
** ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์‹คํŒจ ** ์ด์ „์˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์˜ค๋ฅ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
./discourse-doctor๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
f51291d274ba2564076ba412f28fb445db9c916f00a6d1fb76d2613e773ccfcf
์ด๊ฒŒ ๋ญ” ์ผ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์š”!!!

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒช์€ ๊ฒƒ ๊ฐ™์œผ๋‹ˆ, ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ๋ณด์„ธ์š”: Failed to bootstrap (/tmp/add-cloudflare-ips) - #21 by GreenOWL

ํ˜น์‹œ Bilibili(๋น„๋ฆฌ๋น„๋ฆฌ) ์˜์ƒ ๋ถ„์„ ๋„๊ตฌ๋ฅผ ์•„์‹œ๋Š” ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”? ์ „์— ์“ฐ๋˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์š”์ฆ˜์€ ์ž˜ ์•ˆ ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”.