Linux

nginxでリバースプロキシとLet's Encryptを導入する

  • TECH
nginxでLet’s Encryptを用いてhttps(SSL/TLS)を有効にする方法をこちらに書いていきます。 当方のLet’s Encryptの記事は備忘録と書きます。他社のサイトさんの方がわかりやすいと思うので、わからない点などがあれば調べていただければ幸いです。 今回はリバースプロキシを使用します。 リバースプロキシの設定 1.configを作成する /etc/nginx 上にnginxのいろんな設定ファイルがあります。 特に、nginxのメインとなる主の設定ファイルとなるのが/etc/nginx/nginx.confです。 ですが、このファイルを直接弄ってしまうとわかりにくいという問題が起きるので今回は/etc/nginx/conf.d/以下のファイルを新たに作成します。 /etc/nginx/conf.d/[好きな名前].conf server{ server_name example.net; listen 80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location /test1/ { proxy_pass http://localhost:8080/; } location /test2/ { proxy_pass http://localhost:3000/; } } 2.動いているか確認する systemctl restart nginx nginxを再起動させて、リバースプロキシが働いてくれているか確認します。 Let’s Encryptの設定 0.Let’s Encryptで必要なものを入れる yum -y install epel-release yum -y install certbot certbotというものが必要となるので、インストールします。 1.証明書を取得する certbotを使って取得します。 certbot certonly --standalone 2.設定に追加する certbotを実行することで、

Linuxのディスク容量拡張の方法

  • TECH
UbuntuServerのディスクの容量を拡張する必要が出てきたので、ここに備忘録として残していきます。 VPSを使っていると、スケールアップなどで容量が拡張してくれるものがあります。しかし、ディスクとしては拡張されていても最初から入っているパーティションが勝手に伸びたり縮んだりすることが出来ないので我々が操作をしてあげないといけません。 前提条件 /dev/sda2のパーティションの容量を拡張するという想定で拡張の方法を書いていきます。 0.partedが入っていない場合はインストールする partedは標準のLinuxOSでは入っている場合が多いですが、実際に入っていない場合もあるかもしれないので、その場合入れてあげます。 debian系 apt install parted RedHat系 yum install parted これで、パーティションツールを入れることができます。 1.partedから容量を拡張する sudo parted print all # /dev/sdaを選択する select /dev/sda # /dev/sdaのパーティションの構成をみる print /dev/sda # パーティション2をリサイズする resizepart 2 「End 400G 」100%とすることで、最大容量まで拡張できます。 最後に/dev/sdaの容量を見てみます。 print /dev/sda 2.実容量を拡張する df -h これでマウント中の容量を見ることができます。 そうすると実容量が拡張されていないため、resize2fs というコマンドを使っていきます。 sudo resize2fs /dev/sda2 もちろんですが、root権限が必要です。 3.容量を確認する df -h これで/dev/sda2の部分の容量が拡張されているのかを確認してください。

neovimでUltiSnips requires py >= 2.7 or py3というエラーの対処法

  • TECH
最近、新たにデスクトップPCにLinuxMintを導入してneovimやtmuxやらの環境構築をしている途中に UltiSnips requires py >= 2.7 or py3 とこのようなエラーをneovimを起動する度に吐いてしまったので対処法を備忘録として載せておきます。 環境 OS:LinuxMint 19 原因 apt-get install neovim からインストールしたため、neovimの最新バージョンではないのが原因 コマンドを入力 pip install neovim これを入力すると、 Collecting neovim Using cached https://files.pythonhosted.org/packages/78/ec/ac9905ccab8774b64c37cdff9e08db320c349eda0ae3161aebcac83e5590/neovim-0.3.1.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named setuptools ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-bezjAu/neovim/ このような謎エラーが出てきました。 neovimとpip installで入れようとしているものとバージョンが合わないと怒られます。 ということで、neovimの公式からインストールしていきましょう。https://github.com/neovim/neovim/wiki/Installing-Neovim LinuxMintの場合はベースのディストリビューションがUbuntuになるので、Ubuntuのインストール方法を用います。

VPSでスワップ領域を増やす

  • TECH
VPSで格安のものになってくると、問題となってくるのがスペックになります。 昔のVPSに比べると、メモリが512MBに増えておりかなり使えるものになってきましたが、それでも不足してしまうという現実があります。 そこで、気休め程度になってしまいますが、スワップ領域を増やしてみました。 1.確認する 最初にSWAP領域があるかないか調べるために以下のコマンドを実行します。 free -m total used free shared buff/cache available Mem: 481 158 104 0 218 310 Swap: 0 0 0 当方のVPSではこのようになっていました。 Memがお分かりの通り、実メモリです。 Swapがスワップ領域です。 Total 0となっていると、その領域は存在しないという意味です。 2.スワップ領域を作る dd if=/dev/zero of=/swapfile bs=1M count=4096 3.適応させていく 3.1.スワップの権限を変更する chmod 600 /swapfile 3.2.スワップを適応する mkswap /swapfile swapon /swapfile 4.スワップを恒久化する この操作を行わないと再起動で元通りになってしまうので、次回以降の起動のためにこれから設定していきます。 HDDのマウントなどで使われるfstabに追記していきます。 /etc/fstabを開き、以下のものを最下位に追記します。 #Swap Area /swapfile swap swap defaults 0 0 これでスワップ領域の設定が完了します。 まとめ このような方法でスワップ領域を簡単に作ることができます。 メモリ不足の根本的な対策は違うプランにして増やすべきですが、私のようにお金がないやほかの諸々の事情がある場合はこれで乗り切れると思います。 今回はこれで以上です。

proxmox(Debian系)でソフトウェアRAIDを組む

  • TECH
今回はproxmoxというハイパーバイザーOSを使ってソフトウェアRAIDを組んでみます。 ソフトウェアRAIDを組む方法として、mdadmを使って構築していきます。普通はmdadmをコマンド操作で構築しますが、正直なところキツイのでwebminを使ってRAID構築をしていきます。webminではWebUIから構築出来ますが、実際に動いているのはmdadmなので「コマンド操作したい!」となった時でも対応できるのでおすすめです。 1.最初にWebminの導入 1.1 Webminをダウンロード http://www.webmin.com/download.html から最新版の.debファイルをwget経由でダウンロードします。 wget https://prdownloads.sourceforge.net/webadmin/webmin\_1.900\_all.deb https://~all.debの部分は最新版のリンク先を貼り付けてください。 1.2 Webminをインストール このように、dpkgで.debファイルをインストールします。 dpkg -i https://prdownloads.sourceforge.net/webadmin/webmin\_1.900\_all.deb 恐らく、これでエラーを吐いてインストールできないので(インストール出来たらこのコマンドは必要ないです。)、次のコマンドを実行します。 apt-get -f install このようにすると、Webminをインストールできます。 最後にダウンロードした.debファイルは必要なくなるので、削除しておきましょう。 rm webmin* これでhttps://[proxmoxのIPアドレス]:10000にアクセス出来るか確かめておきましょう。 1.3 mdadmをインストールする webminをインストールしてもソフトウェアRAIDの管理ソフトウェアのmdadmがインストールされないので、導入します。 apt-get install mdadm これでインストールは終了です。 2.ソフトウェアRAIDを構築 2.1 最初に webminをrootパスワードでログインしてください。 2.2 RAIDで使用するディスクをごにょごにょする 1.ハードウェア>ローカルディスクのパーティションに移動します。 2.使用するディスクを選択します。 3.Wipe PartitionsよりGPTを選択してWipe and Re-Labelをクリックします。 4.ここからは、RAID用のパーティションを作成します。プライマリ パーティションを追加を選択します。 5.種類の部分をLinuxRAIDにし、作成します。 2.3 RAIDを構築する 1.ハードウェア>Linux RAIDまで移動します。 2.このような感じで選択出来るので、構築したいRAIDを選択して、次のレベルのRAIDデバイスを作成 をクリックします。

grafanaをnginxでリバースプロキシしてみる

  • TECH
みなさん大好きなGrafanaを使っている方は、たくさんいらっしゃると思うのですが、今回はnginxを使ってリバースプロキシを使ってみました。少しだけややこしいと思ったので記事にします。 正直なところ、ここを見なくても公式サイトにしっかりと載せてくれてます。 おそらく、そちらを見た方がいいです。 http://docs.grafana.org/installation/behind_proxy/ 今回やりたいこと ドメインはtest.domainと仮定します。 http://test.domain/grafana/でアクセス出来るようにする test.domainはもちろん自分のドメインに変えてください。 nginxのリバースプロキシの設定 grafanaの設定 終了です 1.nginxの設定 nginxのリバースプロキシの設定からしていきます。 server { listen 80; server_name test.domain location /grafana/ { proxy_pass http://localhost:3000/; } } 2.grafana側の設定を変更する /etc/grafana/grafana.iniから設定を変更する [server] domain = test.domain root_url = %(protocol)s://%(domain)s/grafana/ これで終わりです。 公式サイトではこの後にもHA Proxyの設定もいろいろ変更しないといけないと表記されていましたが、HA Proxyの設定をしなくてもいけました。 まとめ Grafanaでリバースプロキシの設定をするときは少しgrafana側の設定をする必要がでてくるので、公式サイトさえみればなんとかなると思うので頑張って設定してください。

nextcloudでアップロードができない理由はこれだった...

  • TECH
nextcloudというOSSの自前でクラウドっぽいことができるものを愛用していますが、nginxをリバースプロキシとして使い、apache2上にnextcloudを立てました。 しかし、構築した際に問題が発生したので今回の対処法を紹介します。 戦犯は… nginx先輩でした。 最初に答えを言うのはあれですが、これだけで5時間以上の時間を費やしました。 nginxのデフォルトの設定ではアップロードが512kbしかできないらしく、こいつが原因でした。 なぜわかったのか? nextcloudのweb操作で小さいファイルだとアップロードできるのに、1MBを超えるファイルをアップロードしようとすると、なぜか途中で止まってしまうということが起こりました。 そこで、nextcloudのクライアントからを入れてみたときに、どんな挙動が起こるのか確かめてみると… これについて調べてみると、phpというよりもwebサーバー本体のコンフィグの設定に問題があることを知りました。 apache2かnginxのどっちがおかしいのかと考えると、nginx側がおかしいということに気づきました。 対処法 nginxのコンフィグを変更する server { #省略 client\_max\_body_size 1000m; #省略 } こんな感じで/etc/nginx/nginx.conf又は/etc/nginx/conf.d/cloud.confあたりに突っ込めばアップロードできるようになりました。 nginxを再起動 systemctl restart nginx nginxを再起動すると見事にファイルをアップロードできるようになりました。 まとめ 今回の原因として、nginxをあまり触っていなかったことが問題になりました。 やっぱりコンフィグ類はちゃんと覚えておくべきだということを改めて実感しました。