160 行
11 KiB
HTML
160 行
11 KiB
HTML
|
||
<article>
|
||
<header>
|
||
<h1>【Prosody】mod_http_upload(XEP-0363)を有効にする方法</h1>
|
||
<a href="/">トップページに戻る</a>
|
||
<div class="info">
|
||
凜、
|
||
|
||
<time datetime="2021-10-17T00:00:00Z">
|
||
2021年10月17日
|
||
</time>
|
||
—
|
||
|
||
<a href="/tags/jp/">jp</a>,
|
||
<a href="/tags/blog/">blog</a>,
|
||
<a href="/tags/prosody/">prosody</a>,
|
||
<a href="/tags/xmpp/">xmpp</a>
|
||
<hr />
|
||
</div>
|
||
</header>
|
||
<section>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" lang="ja" xml:lang="ja">
|
||
<head>
|
||
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
|
||
<meta name="author" content="テクニカル諏訪子" />
|
||
<meta name="description" content="デジタル自主のロリ神様" />
|
||
<meta property="og:title" content="テクニカル諏訪子" />
|
||
<meta property="og:type" content="website" />
|
||
<meta property="og:locale" content="ja_JP" />
|
||
<meta property="og:site_name" content="テクニカル諏訪子" />
|
||
<meta property="og:url" content="http://6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/blog/prosody-modhttpupload-xep363-active-way/" />
|
||
<meta property="og:image" content="../../static/lolilolisuwa.jpg" />
|
||
<link rel="alternate" type="application/atom+xml" title="テクニカル諏訪子 feed" href="../../blog.atom" />
|
||
<title>テクニカル諏訪子: 【Prosody】mod_http_upload(XEP-0363)を有効にする方法</title>
|
||
<link rel="stylesheet" type="text/css" href="../../static/style.css" />
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<img src="/static/Eqjk_WgVQAE2psn-new.jpeg" class="header-img" alt="ヘッダー" />
|
||
|
||
<p>
|
||
<a href="/">トップ</a> |
|
||
<a href="/about/">自己紹介</a> |
|
||
<a href="/contact/">連絡先</a> |
|
||
<a href="/freelancer/">フリーランス</a> |
|
||
<a href="/support/">支援♡</a> |
|
||
<a href="/service/">サービス</a> |
|
||
<a href="/i2pabout/">I2Pについて</a>
|
||
</p>
|
||
<p>
|
||
<a href="/blog.atom">RSSで登録</a> |
|
||
<a href="https://social.076.ne.jp/TechnicalSuwako">Pleromaでフォロー</a> |
|
||
<a href="https://video.076.ne.jp/c/technicalsuwako">PeerTubeで登録</a> |
|
||
<a href="https://www.technicalsuwako.jp">一般ネット</a> |
|
||
<a href="http://6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/">Tor</a> |
|
||
<a href="http://technicalsuwako.i2p/">I2P</a>
|
||
</p>
|
||
<hr />
|
||
<p>XMPPサーバーを設置するなら、Prosodyは一番大人気ですね。<br />
|
||
でも、すぐファイル転送機能性を使えないと気づきました。<br />
|
||
ネットで、機能性を有効にする方法は殆どないんです。<br />
|
||
日本語のネットも英語のネットもありません。</p>
|
||
<p>でも、あたしは有効ように出来ましたので、本日は説明してみます。<br />
|
||
「<code>ドメイン</code>」と見たら、自分のドメイン名(例:<code>tatoe.jp</code>)に変えてください。</p>
|
||
<h1 id="heading">コマンドライン</h1>
|
||
<p>まずは<code>mercurial</code>(<code>git</code>みたいなバージョン管理ソフト)をインストールすると、「<code>prosody-modules</code>」ってレポジトリーを受け取ります。<br />
|
||
まだやらなかったら、SSL証明書を申請します。</p>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>apt install mercurial <span style="color:#666">&&</span> <span style="color:#a2f">cd</span> /usr/lib/prosody <span style="color:#666">&&</span> hg clone https://hg.prosody.im/prosody-modules/ modules-extra
|
||
certbot certonly -d ドメイン -d upload.ドメイン -d chat.ドメイン -d proxy.ドメイン --deploy-hook <span style="color:#b44">"prosodyctl --root cert import /etc/letsencrypt/live"</span>
|
||
</code></pre><h1 id="prosody">Prosodyのコンフィグファイル</h1>
|
||
<p>次は、「<code>/etc/prosody/prosody.cfg.lua</code>」ファイルを編集して下さい。</p>
|
||
<p>「<code>modules_enabled = {</code>」で、まずは「<code>http_upload</code>」を無効様にします。</p>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code> <span style="color:#080;font-style:italic">-- HTTP modules</span>
|
||
<span style="color:#b44">"http"</span>;
|
||
<span style="color:#b44">"bosh"</span>; <span style="color:#080;font-style:italic">-- Enable BOSH clients, aka "Jabber over HTTP"</span>
|
||
<span style="color:#b44">"websocket"</span>; <span style="color:#080;font-style:italic">-- XMPP over WebSockets</span>
|
||
<span style="color:#080;font-style:italic">--"http_files"; -- Serve static files from a directory over HTTP</span>
|
||
<span style="color:#080;font-style:italic">--"http_upload"; -- Enables file sharing between users</span>
|
||
...
|
||
</code></pre><h2 id="heading-1">プラグインパスで</h2>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- Prosody will always look in its source directory for modules, but</span>
|
||
<span style="color:#080;font-style:italic">-- this option allows you to specify additional locations where Prosody</span>
|
||
<span style="color:#080;font-style:italic">-- will look for modules first. For community modules, see https://modules.prosody.im/</span>
|
||
<span style="color:#080;font-style:italic">--plugin_paths = {}</span>
|
||
plugin_paths <span style="color:#666">=</span> { <span style="color:#b44">"/usr/lib/prosody/modules/"</span>, <span style="color:#b44">"/usr/lib/prosody/modules-extra/"</span> }
|
||
</code></pre><h2 id="httplog--">HTTPで(なければ、「log = {」の前に貼って下さい)</h2>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- HTTP</span>
|
||
https_ports <span style="color:#666">=</span> { <span style="color:#666">5281</span> }
|
||
https_interfaces <span style="color:#666">=</span> { <span style="color:#b44">"*"</span>, <span style="color:#b44">"::"</span> }
|
||
|
||
cross_domain_bosh <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">true</span>
|
||
consider_bosh_secure <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">true</span>
|
||
|
||
http_paths <span style="color:#666">=</span> {
|
||
register_web <span style="color:#666">=</span> <span style="color:#b44">"/register-on-$host"</span>;
|
||
bosh <span style="color:#666">=</span> <span style="color:#b44">"/http-bind"</span>; <span style="color:#080;font-style:italic">-- Serve BOSH at /http-bind</span>
|
||
files <span style="color:#666">=</span> <span style="color:#b44">"/"</span>; <span style="color:#080;font-style:italic">-- Serve files from the base URL</span>
|
||
}
|
||
http_host <span style="color:#666">=</span> <span style="color:#b44">"ドメイン"</span>
|
||
http_default_host <span style="color:#666">=</span> <span style="color:#b44">"ドメイン"</span>
|
||
http_external_url <span style="color:#666">=</span> <span style="color:#b44">"ドメイン"</span>
|
||
trusted_proxies <span style="color:#666">=</span> { <span style="color:#b44">"127.0.0.1"</span>, <span style="color:#b44">"::1"</span>, <span style="color:#b44">"192.168.1.1"</span>, }
|
||
</code></pre><h2 id="ssl">SSL証明書で</h2>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">-- HTTPS currently only supports a single certificate, specify it here:</span>
|
||
https_certificate <span style="color:#666">=</span> <span style="color:#b44">"/etc/prosody/certs/ドメイン.crt"</span>
|
||
https_key <span style="color:#666">=</span> <span style="color:#b44">"/etc/prosody/certs/ドメイン.key"</span>
|
||
</code></pre><h2 id="virtualhost">VirtualHostで</h2>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">----------- Virtual hosts -----------</span>
|
||
<span style="color:#080;font-style:italic">-- You need to add a VirtualHost entry for each domain you wish Prosody to serve.</span>
|
||
<span style="color:#080;font-style:italic">-- Settings under each VirtualHost entry apply *only* to that host.</span>
|
||
|
||
VirtualHost <span style="color:#b44">"ドメイン"</span>
|
||
disco_items <span style="color:#666">=</span> {
|
||
{ <span style="color:#b44">"upload.ドメイン"</span> };
|
||
}
|
||
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
|
||
</code></pre><h2 id="component">Componentで</h2>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code><span style="color:#080;font-style:italic">------ Components ------</span>
|
||
<span style="color:#080;font-style:italic">-- You can specify components to add hosts that provide special services,</span>
|
||
<span style="color:#080;font-style:italic">-- like multi-user conferences, and transports.</span>
|
||
<span style="color:#080;font-style:italic">-- For more information on components, see https://prosody.im/doc/components</span>
|
||
|
||
...
|
||
|
||
Component <span style="color:#b44">"upload.ドメイン"</span> <span style="color:#b44">"http_upload"</span>
|
||
http_upload_file_size_limit <span style="color:#666">=</span> <span style="color:#666">209715200</span> <span style="color:#080;font-style:italic">-- 200 MiB</span>
|
||
http_upload_quota <span style="color:#666">=</span> <span style="color:#666">2097152000</span>
|
||
http_max_content_size <span style="color:#666">=</span> <span style="color:#666">209715200</span>
|
||
http_external_url <span style="color:#666">=</span> <span style="color:#b44">"https://upload.ドメイン:5281/"</span>
|
||
http_upload_path <span style="color:#666">=</span> <span style="color:#b44">"/var/lib/prosody/files"</span>
|
||
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
|
||
|
||
Component <span style="color:#b44">"proxy.ドメイン"</span> <span style="color:#b44">"proxy65"</span>
|
||
proxy65_address <span style="color:#666">=</span> <span style="color:#b44">"ドメイン"</span>
|
||
legacy_ssl_ports <span style="color:#666">=</span> { <span style="color:#666">5223</span> }
|
||
</code></pre><h1 id="nginx">Nginxのコンフィグファイル</h1>
|
||
<p>最後はnginxのコンフィグファイルです。<br />
|
||
「/etc/nginx/conf.d/prosody.conf」というファイルを開いて:</p>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>location /upload {
|
||
proxy_pass http://localhost:5000;
|
||
proxy_set_header Host "upload.$host";
|
||
client_max_body_size 200M;
|
||
}
|
||
</code></pre><h1 id="heading-2">サービスの再起動</h1>
|
||
<p>勿論、サービスの再起動は必要となります。</p>
|
||
<pre style="background-color:#f8f8f8;overflow-x: auto"><code>systemctl restart prosody nginx
|
||
</code></pre><p><img src="modhttpupload.png" alt="" /></p>
|
||
<p>以上</p>
|
||
|
||
|
||
<hr />
|
||
<a href="https://github.com/piranha/gostatic">gostatic</a>で創作しました。<a href="https://git.076.ne.jp/TechnicalSuwako/StaticSuwako">Git</a>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
|
||
</section>
|
||
</article>
|