ラベル apache の投稿を表示しています。 すべての投稿を表示
ラベル apache の投稿を表示しています。 すべての投稿を表示

2021年3月26日金曜日

.httpaccessでwwwなしをwwwありに転送(mod_rewrite)メモ

    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example\.com
    RewriteRule (.*)$ http://www.example.com/$1 [R=301,L]

 

(.*)のあとの$は何なのか調べるの忘れた

2016年10月14日金曜日

centos6のowncloudにlet's encryptを導入した話(サブドメイン(独自ip)運用)

実はこれの前に別の環境でletsencryptを動作させてみて成功していたのだけれども、
ログを残しておくのに失敗したので、別環境で再度やってみたというところ。
環境はcentos6。

https://blog.apar.jp/linux/3619/
に倣って

cd /home/myusername
git clone https://github.com/certbot/certbot 



./certbot-auto


うちだと7パッケージが新規インストールされた。
インストールしています:
 dialog             x86_64       1.1-9.20080819.1.el6       base          197 k
 libffi-devel       x86_64       3.0.5-3.2.el6              base           18 k
 python-tools       x86_64       2.6.6-66.el6_8             updates       871 k
依存性関連でのインストールをします。:
 tcl                x86_64       1:8.5.7-6.el6              base          1.9 M
 tix                x86_64       1:8.4.3-5.el6              base          252 k
 tk                 x86_64       1:8.5.7-5.el6              base          1.4 M
 tkinter            x86_64       2.6.6-66.el6_8             updates       258 k

最後に
完了しました!
Creating virtual environment...
./certbot-auto: line 583: virtualenv: コマンドが見つかりません

大丈夫か?
更に倣って進める。
今回はサブドメインだったので
./certbot-auto certonly --webroot \
-w /var/www/html -d subdomain.sampledomain.com -d www.subdomain.sampledomain.com \
-m admin@sampledomain.com \
--agree-tos
 ん?

パッケージ gcc-4.4.7-17.el6.x86_64 はインストール済みか最新バージョンです
パッケージ dialog-1.1-9.20080819.1.el6.x86_64 はインストール済みか最新バージョンです
パッケージ augeas-libs-1.0.0-10.el6.x86_64 はインストール済みか最新バージョンです
パッケージ openssl-1.0.1e-48.el6_8.3.x86_64 はインストール済みか最新バージョンです
パッケージ openssl-devel-1.0.1e-48.el6_8.3.x86_64 はインストール済みか最新バージョンです
パッケージ libffi-devel-3.0.5-3.2.el6.x86_64 はインストール済みか最新バージョンです
パッケージ redhat-rpm-config-9.0.3-51.el6.centos.noarch はインストール済みか最新バージョンです
パッケージ ca-certificates-2015.2.6-65.0.1.el6_7.noarch はインストール済みか最新バージョンです
パッケージ python-2.6.6-66.el6_8.x86_64 はインストール済みか最新バージョンです
パッケージ python-devel-2.6.6-66.el6_8.x86_64 はインストール済みか最新バージョンです
パッケージ python-virtualenv は利用できません。
パッケージ python-tools-2.6.6-66.el6_8.x86_64 はインストール済みか最新バージョンです
パッケージ python-pip は利用できません。
パッケージ 1:mod_ssl-2.2.15-54.el6.centos.x86_64 はインストール済みか最新バージョンです
 うーん・・・python-virtualenvとpython-pipが無いと言われる・・・。
 調べると
http://rriifftt.hatenablog.com/entry/2015/10/28/142043
epelか・・・。

epelを有効にして、再度
./certbot-auto
 すると

なんと青い疑似GUI画面。ええ、聞いてないよそんなの。

一回目の入力でドメインを入力。
2回目の入力でメールアドレス。
3回目は利用規約に同意。

すると「いやあ言われたバーチャルホスト、見つからなかったわー」
と言われたので、apacheの設定からやり直す。
VirtualHostでwww無しアリを作って、(何か嫌な感じだったので)
./certbot-auto certonly --webroot \
-w /var/www/html -d subdomain.sampledomain.com -d www.subdomain.sampledomain.com \
-m admin@sampledomain.com \
--agree-tos
で再実行。
 すると

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/SUBDOMAIN.DOMAIN.COM/fullchain.pem.
   Your cert will expire on 2017-01-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
ということで取得できた。

sslの設定をする。
http://weblabo.oscasierra.net/letsencrypt-2/
より

vi /etc/httpd/conf.d/ssl.conf


当該の鍵ファイル3点を編集。
SSLCertificateFile /etc/letsencrypt/live/[サーバーのドメイン]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[サーバーのドメイン]/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/[サーバーのドメイン]/chain.pem
自動更新は
crontab -u root -e

00 05 01 * * /usr/local/certbot/certbot-auto renew --force-renew && /bin/systemctl reload httpd
やっと普通に使えるようになった・・・。

他参考
https://letsencrypt.jp/usage/

http://weblabo.oscasierra.net/letsencrypt-2/

2014年6月10日火曜日

squidに負荷をかけてみる(abコマンドでプロキシサーバの負荷テストをしたい)

squidでリバースプロキシ(httpアクセラレータ)+透過プロキシを立てている。
最近キャッシュの量とかメモリ関係をいじったので、果たして使い物になるのだろうか、ということを確かめたかった。

プロキシの負荷テストに、apache同梱のabコマンドが使えると言うことを目にしたので、早速試す。
virtualboxのcentosにapacheをyumでインストール
yum install httpd

その後、squidの入ったサーバに対し、無線LAN経由で早速試したが書式に困る。
-Xでプロキシ指定と書かれている
http://www.omnioo.com/record/ubuntudebian/web_apache_ab_command/
が、何故か通らない。
と思ったらそりゃそうだ。透過プロキシなんだもん。
普通にアクセスしてやればいいのではないか。
で、普通にアクセスすると、やっぱり通らない。
首を捻りながら他の書式を参考に、接頭として「http://」、接尾に「/」を入れると通る。
ううむ・・・。

ということで、通った書式は
ab -c 100 -n 10000 http://192.168.168.168/

192.168.168.168は、squidプロキシサーバのIPアドレス
-cは同時接続数、-nは総リクエスト数

-cの値を400でやってみた時のログが下。500にするとfaildがかなり出たのでそこまでは使えないんだろうけど、
400台からリクエスト受けることなんて無いので、十分満足な結果。また、総リクエスト数は10,000だろうが100,000だろうがエラーは出なかった。

# ab -c 400 -n 10000 http://192.168.168.168/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.168.168 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        squid/3.1.10
Server Hostname:        192.168.168.168
Server Port:            80

Document Path:          /
Document Length:        3149 bytes

Concurrency Level:      400
Time taken for tests:   21.348 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Non-2xx responses:      10065
Total transferred:      35295756 bytes
HTML transferred:       31642161 bytes
Requests per second:    468.43 [#/sec] (mean)
Time per request:       853.912 [ms] (mean)
Time per request:       2.135 [ms] (mean, across all concurrent requests)
Transfer rate:          1614.62 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        2  248 621.4     60    4298
Processing:   106  533 1064.4    215   11993
Waiting:      104  357 591.2    197    9319
Total:        113  781 1367.8    294   12831

Percentage of the requests served within a certain time (ms)
  50%    294
  66%    592
  75%    806
  80%    975
  90%   1493
  95%   3182
  98%   4819
  99%   6595
 100%  12831 (longest request)

topで観察していると、cpuは40%から50%ぐらい使っている。
システム的にはceleron1037uでメモリ8GB。
squidのキャッシュ設定は
cache_dir ufs /var/spool/squid/cache_l 8192 16 256
maximum_object_size 131072 KB
cache_mem 1024 MB

追記
http://okwave.jp/qa/q9003206.html
で貼られていたので・・・

ベンダーさんの100台まで発言は見過ごせませんね・・・。
僕の稼働実績としては200台近くまでありますよ。
スループットも特に問題になったことはありません。
忌々しいchache.google.comにどれだけ接続されようとも・・・!
因みにその時は、core2quadで8GB環境、NICは4ポートintelでした。
瞬間同時接続数(よーいどんで一気に接続する)は見てませんが、上記のテストを信じるのであれば、400台近くまではいけるはずです。
しかもセレロン(ニアリーcore2duo)8GBRAM環境でこれなので、
ベンダーさんがきちんと組めば、普通に組めるはずです。
是非このベンダーさんには、論拠をご教示頂きたいですね。

あと質問者さんが言っているファイルディスクリプタのことは
http://takeda-h.hatenablog.com/entry/2014/12/09/005533

http://d.hatena.ne.jp/rougeref/20130424

みたいな所に書いてあります。
因みに1037Uのこのsquidは、ファイルディスクリプタ弄ってません。で、常時90台程度接続のhttpアクセラレータです。

参考になれば。