それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

nginx

nginx で lua を使う(nginx lua でハローワールド)便利なテクニックをご紹介!

nginx で lua を使う インストールと準備 deiban の場合は次で一発で終わる。 sudo apt install libnginx-mod-http-lua 最初に第一歩 location ~ / { default_type 'text/html'; content_by_lua "ngx.say('Hello, ngx_lua World!')"; } アクセスしてみる。 l…

nginxでlua を使おうと思ったらdebianが楽

debian のnginxでluaを使ってたのでUbuntuで使おうと思ったらなかった。 debian のnginx には lua があった。どこで入れたんだっけ。 nginx -V 確認したけどコンパイルでは入ってない。 モジュールでは入ってる。 apt-file show libnginx-mod-http-lua libng…

mattermost でファイルのアップロードができない。

ファイルアップロードで失敗する mattermostでファイルをアップロードしようとすると、アップロードで止まってしまう。 { "create_post.fileProcessing": "処理しています...", } 処理していますは、とmattermostのソースコードで日本語化ファイルをみる と"…

sslhでdohが捌けないのは dns-crypt 特定フラグのせいだった。nginx

SSLHで dohをさばけない dig DoHでDNS問い合わせがうまく行かないと思って4時間格闘した結果、DoHはdns-cryptなので、純粋なSNI/ALPNではないとわかった。まじかよ。それTLS特定フラグで識別可能じゃん。暗号化解除しなくても止められちゃうじゃん。 色々調…

413 File too Largeになる。nginx+php-fpmの見落としがちな設定

nginx + php-fpmで構成するときに「アップロードサイズ」に注意する。 php-fpm 側のphp.iniの設定でアップロード上限がある、 nginx 側にも、アップロード上限がある。 後者を見落としがちなので注意する。わたしもたまにやらかす。 NextcloudのデータをVPS…

apt-cacher をnginxの後ろに置こうとしてハマる

apt-cacher を443 でnginxの後ろに置こうとした。 動かない。 ログを見た。 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:443 HTTP/1.1" 400 166 "-" "-" 10.10.1.240 - - [17/Mar/2023:17:45:20 +0900] "CONNECT esm.ubuntu.com:…

nginx設定の config でhtmlを直接書き出す(return)

昨日、echoモジュールに付いて記事を書いたら 直接 return できるよって教えてもらった。 nginx設定 で 直接HTMLを書き出す。echo モジュール。 - それマグで!直接 return 200 "<!DOCTYPE html><h1>It works.(nginx)</h1></html&…

nginx設定 で 直接HTMLを書き出す。echo モジュール。

2022-08-17 追記 return 200'message' を使ったほうがスッキリします → https://takuya-1st.hatenablog.jp/entry/2022/08/17/161838 echo モジュールでHTMLを応答する。 nginx設定 で 直接HTMLを書き出す。echo モジュール。 まるで、古(いにしえ)の技術の…

nginxで443ポートにssh/httpsを共有する

nginx で https と ssh をリッスンする nginx には $ssl_preread_protocol というStream設定が用意されている。これを使うとTLSプロトコルごとに、プロキシ先を変えることができる ただし443 はストリームが使うので、リッスン先をいい感じに帰る必要がある…

https がエラーになって "\x16\x03\x01\x02" になる場合

httpsを設定したら、次のようにエラーになった。 nginx やApacheでHTTPSを設定したら、エラーになった。再起動はうまくいく "\x16\x03\x01\x02" というリクエストが解釈できないエラー。 ==> access_log <== 192.168.11.1 - - [25/Mar/2022:18:26:23 +0900] …

nginx でhttp/https をリダイレクトせずにバックエンドサーバに任せる。

nginx で http は http まま維持して、httpsはhttpsのままバックエンドサーバにリクエストを投げつけるとする。 cli =(http)=> nginx =(http)=> backend:80 cli =(https)=> nginx =(https)=> backend:443 ウェブを検索すると、大体の設定例は次のようになっ…

nginx → apache のhttp2 プロキシ設定

nginx →Apacheでhttps のプロキシ設定をしていて、動かないので、ちょっと頭を抱えた。 次のようにプロ棋士していたが ブラウザ--<ssl/http>--nginx(ssl/h2)--<http>-- apache ある日の更新で次のように変わった。 ブラウザ--<ssl/h2>--nginx(ssl/h2)--<http>--apache すると、curl などブ</http></ssl/h2></http></ssl/http>…

nginx でSSHをプロキシして転送する 443 の再利用も可能

nginx でSSHの接続を転送することが出来ます。 nginx には ストリームをそのまま転送することが出来る機能があるので、TCP・IPのポートフォワードができて、ルーター的な動作が出来ます。 nginx.conf stream { upstream ssh { server 192.168.2.8:22; } serv…

nginx で 443 default_server を入れたら接続できなくなる

443 で default_server を入れたら通信がおかしくなる件 nginx でドメインをキャッチオールして、別サーバーのnginx へ丸投げする、多段nginx の設定を書いていたら、80 だと動くんだけど、443 で動かない。 listen 443 ssl https default_server をつけると…

nginx で proxy 時に header を除去する-CSP上書き削除書き換え

nginx で http header を上書き除去する。 nginx でアプリケーションへ reverse proxy してたんだけど、アプリケーション側にcontent-security-policy の設定が最新版のChromeと合わなかった。とくに blog/data add_header で csp を追記しようとしたけど、…

HTTPSサイトからの遷移時に内部サイトのリファラがもれないようにする。サーバー側設定Referrer-Policy

nginx をつかってブラウザにリファラをおもらししないように命令する 社内のファイルサーバーのリファラURLが漏れると恥ずい。いやまずい。 何がまずいかというとファイル名が漏れてしまったり、アクセス元のURLとして晒されたり、検索インデックスに追加さ…

nginx で proxyPassReverse的なのを実現する。

apache のproxyPassReverseって便利だよね。 とくに静的ページを作るのに便利。記事公開するだけのSPAなんぞいらねーよね。ってとき便利 でもnginx で出来ない。→ 置換すればできるよ。 URIのディレクトリを修正する方法の例 プロキシリクエストの結果を書き…

certbot がLetsEncryptのワイルドカード証明書に対応してたので作ってみた

certbot がワイルドカード対応ですって! Cerbot使ってますか?めっちゃ使いますよね。手軽なHTTPS通信には不可欠です。 なんと、CertBotがワイルドカード対応ですって。ツイートは2018-05-02だから半年前には対応してた模様。知らんかった。最近は情報密度…

nginx で サイトを認証を手軽にログインフォーム認証にする。(Basic認証の代わり)

nginx で サイトを認証する。 Basic認証だと不便なので、フォーム認証をする。 巷に「nginxでbasic認証してみた」の記事が溢れているけど。どう考えてもbasic認証(digest認証)よりHTTP認証(フォーム)のほうがいいと思うんですよね。nginxだけで片付くのに…

nginxのサイト毎の設定が面倒なのでワイルドカードでディレクトリの有無で設定する

nginx のサイト毎の設定が面倒くさい。 サイトが追加されるたびに、ドメインとファイルを追加するのは面倒なので、ワイルドカードで設定したい。 Apacheだとワイルドカード的なことを割と面倒くさい感じで rewrite 組合せたり、virtualhost 設定をしたりだっ…

WEBサーバー(nginx/apache)で、ディレクトリをオシャレに共有する

ディレクトリのインデックス機能をオシャレにする。 ファイルをネットワーク共有する一番手っ取り早い方法は、HTTPサーバーで共有することだと思いません? 認証を入れればアクセスログが残るし、どのファイルが何処にあるか解るし、Slackに貼って渡すのも便…

nginx で特定の拡張子をphpで処理する(SetHandler代替)

特定の拡張子をphpなどで処理する css や js だけじゃなく 画像などをphpで処理したい。Apacheだと addhandler / sethandler で出来るアレ。nginx でもやろうかなと。 画像のリクエストログやリサイズをWebサーバーでやってるとかったるいので、phpで処理し…

php-fpm で php.iniの設定渡す/display_errorsなどをPHP_VALUEで設定する。

PHP_FLAGを使いたい。 apache の mod_php や apacheの fcgiなら簡単にできるんだけど、nginxだとfcgiでどうやって 初期設定を渡したら良いんだろうか。 こうすれば出来る。 fastcgi_param PHP_FLAG "display_errors=on \n display_startup_errors=on"; fastc…

NginxでContent-Typeを指定する。

nginx で Content-Typeを指定する。 すぐに皆が思いつきそうな設定例はこれ。わりと何処にでも書いてある。だけど、、、本当にコレがベターなの? location ~ \.mkv$ { default_type video/mp4; } types がある。 マニュアル読んでると types がった。 types…

nginx + php-fpm で display_startup_erros=on にしてシンタックスエラーを表示する。

nginx と php の連携をしてphp のシンタックスエラーを表示する php-fpm 側の設定をしてしまうと、サイトごとやファイルごとに設定できないので、困ってた。 location ~ \.php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; include snippets/fastcgi-php…