2つめのTracをホストしてみました
大学や仕事のこと、私的なことなどといったプライベートなあれこれもチケット管理しようといった考えから、公開用であるこのTrac
プロジェクトとは別に、認証もかけて自分専用のプロジェクトをホストしようと思いました。
同じホスト(同じサーバ)で2つのTrac
をホストした理由は、単にSSL証明書を節約するためです。
準備
例によって、任意のパスにTrac
用のディレクトリを作成し、Trac
化します。
詳細は以前の投稿を参照のほど。
[email protected] ~:$ mkdir another_project [email protected] ~:$ trac-admin another_project initenv [email protected] ~:$ chown -R trac:www-data another_project [email protected] ~:$ chmod -R 775 another_project
失敗例
nginxの設定で、location /private
を設定し、パスを変える方法は失敗でした。
なぜかというと、Trac
にprivate
というハンドラがないからです。
それから、uwsgiのSocketポートを変えただけでも、同様にだめでした。
そんなにたくさん試行錯誤はしていません。エンジニアたるものもっと失敗にぶち当たるべき。
成功例
結局、私的に使うやつなのでポート番号くらい非defaultでもいいだろということで、別のポートでlistenすることにしました。
- /etc/nginx/sites-available/trac_private
-
server { listen 55555 ssl; server_name x86-64.jp; ssl_certificate /path/to/your/ssl/cert.pem; ssl_certificate_key /path/to/your/ssl/key.key; root /home/trac/another_project; location /favicon.ico { } location /robots.txt { } if ($scheme = http) { return 301 https://$server_name$request_uri; } location / { include uwsgi_params; uwsgi_param REMOTE_USER $remote_user; uwsgi_param HTTPS on; # リクエストが勝手にHTTPになる現象をこの行で解決 include uwsgi_params; uwsgi_pass 127.0.0.1:7778; auth_basic "Trac"; auth_basic_user_file "/path/to/your/.htpasswd"; } }
uwsgi_pass
のSocketポート番号は、ほかに走っているuwsgi
アプリケーションと違うのに気をつけてください。同じだと破滅が起こります。
このconfをsites-enabled
にシンボリックリンク張って、uwsgi
とnginx
を再起動して完了。
Comments
No comments.