<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://smwiki.info/index.php?action=history&amp;feed=atom&amp;title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95</id>
	<title>외부 접근을 위한 프록시 설정 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://smwiki.info/index.php?action=history&amp;feed=atom&amp;title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95"/>
	<link rel="alternate" type="text/html" href="https://smwiki.info/index.php?title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95&amp;action=history"/>
	<updated>2026-05-22T22:14:47Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://smwiki.info/index.php?title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95&amp;diff=9984&amp;oldid=prev</id>
		<title>Sam: /* 단계 */</title>
		<link rel="alternate" type="text/html" href="https://smwiki.info/index.php?title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95&amp;diff=9984&amp;oldid=prev"/>
		<updated>2025-03-28T05:29:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;단계&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025년 3월 28일 (금) 05:29 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l92&quot;&gt;92번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;92번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 기본적으로 100.x.x.x 형태의 ip는 tailscale이 연결된 기기 간에서만 사용할 수 있기에 외부 기기에서 접속은 불가하다. ssh 등의 탈취 위험이 적다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 기본적으로 100.x.x.x 형태의 ip는 tailscale이 연결된 기기 간에서만 사용할 수 있기에 외부 기기에서 접속은 불가하다. ssh 등의 탈취 위험이 적다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 외부에서 허용된 server_name은 도메인 뿐이고, 열려있는 포트는 본 서버 입장에선 오로지 80번 포트이기에 해킹 등 조작의 위험이 적다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 외부에서 허용된 server_name은 도메인 뿐이고, 열려있는 포트는 본 서버 입장에선 오로지 80번 포트이기에 해킹 등 조작의 위험이 적다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= 자주 하는 실수, 문제해결. =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;ss -tulnp | grep 10000&amp;lt;/code&amp;gt; 로 특정 포트가 열려 있는지 쉽게 확인 가능. 안되어 있다면 이전의 설정에서 문제가 생긴 것.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* nginx site-available에서 작성하고 enabled로 안옮기면 적용이 안됨. &amp;lt;code&amp;gt;sudo ln -s /etc/nginx/sites-available/your_config_file /etc/nginx/sites-enabled/&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:관리용 문서]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[분류:관리용 문서]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://smwiki.info/index.php?title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95&amp;diff=9973&amp;oldid=prev</id>
		<title>Sam: 새 문서: == 개요 ==  === 아쉬움 ===  * 회사망이나 학교 내부에서 웹서버 따위를 운용할 때 외부에서의 접속이 막혀 있어 범용성에서 제약이 있다. * 학교 내부에서 사용할 때에도 하나의 공유기가 아니라 여러 공유기를 이용하는데, 모두가 동일한 공유기에 모두가 접속해야 하는 불편이 있어 외부에서 웹서버를 이용할 수 있는 전략이 필요하다. * 학생들이 만든 웹사이트, 서...</title>
		<link rel="alternate" type="text/html" href="https://smwiki.info/index.php?title=%EC%99%B8%EB%B6%80_%EC%A0%91%EA%B7%BC%EC%9D%84_%EC%9C%84%ED%95%9C_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95&amp;diff=9973&amp;oldid=prev"/>
		<updated>2025-03-27T03:31:11Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == 개요 ==  === 아쉬움 ===  * 회사망이나 학교 내부에서 웹서버 따위를 운용할 때 외부에서의 접속이 막혀 있어 범용성에서 제약이 있다. * 학교 내부에서 사용할 때에도 하나의 공유기가 아니라 여러 공유기를 이용하는데, 모두가 동일한 공유기에 모두가 접속해야 하는 불편이 있어 외부에서 웹서버를 이용할 수 있는 전략이 필요하다. * 학생들이 만든 웹사이트, 서...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 개요 ==&lt;br /&gt;
&lt;br /&gt;
=== 아쉬움 ===&lt;br /&gt;
&lt;br /&gt;
* 회사망이나 학교 내부에서 웹서버 따위를 운용할 때 외부에서의 접속이 막혀 있어 범용성에서 제약이 있다.&lt;br /&gt;
* 학교 내부에서 사용할 때에도 하나의 공유기가 아니라 여러 공유기를 이용하는데, 모두가 동일한 공유기에 모두가 접속해야 하는 불편이 있어 외부에서 웹서버를 이용할 수 있는 전략이 필요하다.&lt;br /&gt;
* 학생들이 만든 웹사이트, 서비스를 꾸준히 이용하고자 할 때 학생 개인의 사비를 들여 외부에 개인 서버를 구축하여 사용하는 경우가 많다.&lt;br /&gt;
* 아마존 등에서 클라우드 서비스를 이용한다 하더라도 행정적 빈틈으로 결재가 늦어지는 상황이 발생하여 불편을 겪는 경우가 있다.&lt;br /&gt;
&lt;br /&gt;
== 단계 ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!단계&lt;br /&gt;
!설명&lt;br /&gt;
!비고&lt;br /&gt;
|-&lt;br /&gt;
|본 서버 nginx설정&lt;br /&gt;
|기본적으로 nginx로 운영한다고 가정한다.&lt;br /&gt;
&lt;br /&gt;
* 다음과 같이 구성했을 때 내부 서버로 접속하면 웹서버가 잘 작동함을 확인한다.&lt;br /&gt;
* 미디어위키 설정에서 $wgServer, $wgCanonicalServer 따위의 옵션을 요구하는데, 여기엔 일단 본 서버의 ip를 넣는다.(리다이렉트를 하기 때문에 요청과 서버의 ip가 맞지 않으면 403 에러가 뜬다.)&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
    # 프록시, 로컬, 도메인이이 다 들어가야 점검할 때 편함.&lt;br /&gt;
    server_name smwiki.info 100.101.144.125 100.117.229.125 192.168.0.8;&lt;br /&gt;
&lt;br /&gt;
    root /var/www/html/mediawiki;&lt;br /&gt;
    index index.php index.html index.htm;&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        try_files $uri $uri/ /index.php?$args;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # 특정 PHP 파일만 실행 (보안 강화)&lt;br /&gt;
    location ~ ^/(index|api|load)\.php$ {&lt;br /&gt;
        include snippets/fastcgi-php.conf;&lt;br /&gt;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # 모든 다른 PHP 파일 실행 차단&lt;br /&gt;
    location ~ \.php$ {&lt;br /&gt;
        return 403;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    location ~ /\.ht {&lt;br /&gt;
        deny all;&lt;br /&gt;
    }&lt;br /&gt;
    # 업로드 파일 크기 제한&lt;br /&gt;
    client_max_body_size 20M;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|프록시 서버 설정&lt;br /&gt;
|&lt;br /&gt;
* 프록시 서버의 nginx 옵션을 다음과 같이 작성한다.&lt;br /&gt;
* 1080옵션을 쓰는 이유는 통신사에서 1080 포트를 열어주지 않는 경우가 많기 때문에.&lt;br /&gt;
* 미디어위키 설정에서 $wgServer, $wgCanonicalServer 옵션을 요청할 프록시 서버의 ip로 둔다.(이 옵션을 기준으로 리다이렉트 하기 때문에;)&lt;br /&gt;
* 프록시의 1080 포트로 접속했을 때 사이트가 잘 뜬다면 프록시 서버 설정까지 이상 없음.&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 1080;&lt;br /&gt;
    # 서버네임 옵션.. 불편. 마지막에 완성하고 도메인만 살리면 된다.&lt;br /&gt;
    #server_name smwiki.info 100.117.229.125 192.168.0.8;&lt;br /&gt;
    server_tokens off;&lt;br /&gt;
&lt;br /&gt;
    location / {&lt;br /&gt;
        proxy_pass http://100.101.144.125:80;  # 본 서버의 ip 지정&lt;br /&gt;
        proxy_set_header Host $host;&lt;br /&gt;
        proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
        proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|포트포워딩 및 클라우드플레어 설정&lt;br /&gt;
|&lt;br /&gt;
* 포트포워딩을 프록시 서버의 1080포트로 지정해준다.&lt;br /&gt;
* 클라우드플레어에서 구입한 도메인을 사용하는 설정 후, 공유기의 1080 포트로 요청이 연결되게끔 구생한다.&lt;br /&gt;
* 도메인으로 접속했을 때 이상 없으면 문제 없음.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= 결론 =&lt;br /&gt;
&lt;br /&gt;
=== 보안 관련 ===&lt;br /&gt;
&lt;br /&gt;
* 기본적으로 100.x.x.x 형태의 ip는 tailscale이 연결된 기기 간에서만 사용할 수 있기에 외부 기기에서 접속은 불가하다. ssh 등의 탈취 위험이 적다.&lt;br /&gt;
* 외부에서 허용된 server_name은 도메인 뿐이고, 열려있는 포트는 본 서버 입장에선 오로지 80번 포트이기에 해킹 등 조작의 위험이 적다.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
[[분류:관리용 문서]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
</feed>