<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>vaduz.tk blog &#187; sv_allowdownload</title>
	<atom:link href="http://blog.vaduz.tk/tag/sv_allowdownload/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vaduz.tk</link>
	<description>Google 大好き</description>
	<lastBuildDate>Thu, 03 Dec 2009 14:12:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CS1.6 のカスタムマップをサーバから高速にダウンロードさせる</title>
		<link>http://blog.vaduz.tk/2009/03/08/cs16-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%9e%e3%83%83%e3%83%97%e3%82%92%e3%82%b5%e3%83%bc%e3%83%90%e3%81%8b%e3%82%89%e9%ab%98%e9%80%9f%e3%81%ab%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad/</link>
		<comments>http://blog.vaduz.tk/2009/03/08/cs16-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%9e%e3%83%83%e3%83%97%e3%82%92%e3%82%b5%e3%83%bc%e3%83%90%e3%81%8b%e3%82%89%e9%ab%98%e9%80%9f%e3%81%ab%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 14:27:55 +0000</pubDate>
		<dc:creator>Vaduz</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CS1.6]]></category>
		<category><![CDATA[de_russka]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sv_allowdownload]]></category>
		<category><![CDATA[sv_downloadurl]]></category>

		<guid isPermaLink="false">http://blog.vaduz.tk/?p=51</guid>
		<description><![CDATA[CS1.6 のカスタムマップをサーバから高速にダウンロードさせる設定をしてみました。
CS1.6 では、デフォルトで sv_allowdownload という CVAR があり、クライアントが持っていないファイルをサーバ [...]]]></description>
			<content:encoded><![CDATA[<p>CS1.6 のカスタムマップをサーバから高速にダウンロードさせる設定をしてみました。<br />
CS1.6 では、デフォルトで sv_allowdownload という CVAR があり、クライアントが持っていないファイルをサーバからゲームサーバ経由でダウンロードする機能がついていますが、帯域が非常に狭く、ダウンロードするのに非常に時間がかかってしまいます。目安としては先ほどテストしたところ、8MB のファイルのダウンロードに 5 分以上かかっていました。<br />
ところが、ウェブサーバ経由でファイルをダウンロードさせると、帯域の制限なしにファイルを送信できるので、高速にダウンロードできるようになります。ウェブサーバ経由でのダウンロードには、sv_downloadurl という CVAR を使い、その値に cstrike ディレクトリを設定します。</p>
<p>ゲームサーバで使うカスタムマップファイルは、ゲームサーバとは別にホスティングして利用することを考えましたが、新たなマップを追加したり削除したりする際に、ファイルホスティングしている方も同期させるのが運用上手間になるため、今回はサブドメインに hlds という VirtualHost を立てて、そこに cstrike 以下が見られるように設定しました。cstrike 以下には server.cfg があるため、ゲームサーバのパスワードや rcon パスワードが見られてしまうため、隠蔽する必要があります。そこで、空の document root を作り、そこからの alias で必要なディレクトリが見られるようにしました。Apache の設定は以下のとおりです。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">&lt;VirtualHost *:<span style="">80</span>&gt;
    ServerName hlds.vaduz.tk
    DocumentRoot /var/www/hlds
    Alias /maps /usr/games/hlds/cstrike/maps
    Alias /models /usr/games/hlds/cstrike/models
    Alias /gfx /usr/games/hlds/cstrike/gfx
    Alias /overviews /usr/games/hlds/cstrike/overviews
    Alias /sound /usr/games/hlds/cstrike/sound
    &lt;Directory /var/www/hlds/&gt;
        AllowOverride All
        order deny,allow
        deny from all
        allow from all
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre></td></tr></table></div>

<p>Apache からでもアクセスできるように該当のディレクトリのオーナーを確認してください。<br />
また、ファイルの中にはパーミッションが正しく設定されていない場合があるので、注意してください。<br />
今回は一括で以下のコマンドで変更しました。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>games<span style="color: #000000; font-weight: bold;">/</span>hlds <span style="color: #660033;">-type</span> f <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">644</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>games<span style="color: #000000; font-weight: bold;">/</span>hlds <span style="color: #660033;">-type</span> d <span style="color: #660033;">-print0</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #660033;">-0</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> <span style="color: #000000;">755</span></pre></td></tr></table></div>

<p>ウェブサーバからカスタムマップをダウンロードする設定が整いました。<br />
ゲームサーバの設定を変更して、ウェブサーバ経由でファイルをダウンロードするように変更します。<br />
server.cfg を以下のように変更します。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">sv_allowdownload <span style="">0</span>
sv_downloadurl <span style="color: #933;">&quot;http://hlds.vaduz.tk/&quot;</span></pre></td></tr></table></div>

<p>sv_allowdownload が有効のままだとウェブサーバ経由にならないので、オフにします。<br />
sv_downloadurl は &#8221; でクオートして、127 バイト以内に収めます。</p>
<p>設定後、試しにサーバに入ってみると、ほぼ一瞬でダウンロードが終了しました。<br />
通常ファイルがない場合はサーバに入ることができないため、ないマップをダウンロードして、Steam フォルダに展開して・・・という手間が要らずに直接入ることができます。クライアントにとってもサーバに入る際の敷居が低くなるでしょう。</p>
<p>これは個別の問題ですが、de_russka を使用する際に、</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">cannnot continue without models/de_russka_tree_noleaves.mdl</pre></td></tr></table></div>

<p>というエラーがでてしまうことがあります。<br />
ファイル自体は</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="ini" style="font-family:monospace;">models/de_russka/russka_tree_noleaves.mdl</pre></td></tr></table></div>

<p>にありますが、見ているディレクトリが違うようで、正しくダウンロードできません。<br />
結構利用されているマップなので、透過的にダウンロードできるようにシンボリックリンクを貼っておきました。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>games<span style="color: #000000; font-weight: bold;">/</span>hlds<span style="color: #000000; font-weight: bold;">/</span>cstrike<span style="color: #000000; font-weight: bold;">/</span>models
<span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> de_russka<span style="color: #000000; font-weight: bold;">/</span>russka_tree_noleaves.mdl de_russka_tree_noleaves.mdl</pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.vaduz.tk/2009/03/08/cs16-%e3%81%ae%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%9e%e3%83%83%e3%83%97%e3%82%92%e3%82%b5%e3%83%bc%e3%83%90%e3%81%8b%e3%82%89%e9%ab%98%e9%80%9f%e3%81%ab%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
