Nginx
軽量かつ高性能なWebサーバ/リバースプロキシ/メールプロキシであるNginxと その関連の話題を扱うスレッドです。 公式サイト http://www.nginx.org/ nginx Wiki http://wiki.nginx.org/ (例)otameshi.comとURLを入力したとき、 otameshi.com:8065にリダイレクトさせたいです。 proxy_pass http://localhost:8065 または proxy_pass http://127.0.0.1:8065 やxxx.xxx.xxx.xxx:8065(自分のサーバIP) としたとき、 繰り返しのリダイレクトでエラーになってしまいます。 どうすると同サーバー内のポート違いへ移動できるようになるのでしょうか? Mattermostというソフトを動かしたいのですが、 直に8065を付ければ動かせます。 公式で紹介しているnginx.confの書き方でも同じです。 これwordpressに使いたかったけど、初心者の俺には敷居が高すぎるなぁ。 スレチ的で申し訳ないですが、教えてください。 http://sample.com:8065 → これで問題なく使える。 https://sample.com:8065 → ERR_SSL_PROTOCOL_ERROR proxy_passで sample.comから8065ポートへリダイレクト → リダイレクトループ 同じくhttps://sample.com:8065 へリダイレクト → ERR_SSL_PROTOCOL_ERROR この際、8065ポートへの自動リダイレクトは諦めても、 https接続できるようにしたいです。 証明書をmattermostへ継続させるには、 どのようにnginx.confを書けば良いのでしょうか? >>343 redirectとproxyがごっちゃになってる httpからhttpsにリダイレクトさせるのはnginx側で行うべきことなのでproxy_pass無関係 301とリダイレクト先URLをブラウザに返して、ブラウザ側でページを読み直させる server { listen 80; server_name example.com; return 301 https://$host$request_uri ; } リバースプロクシしようとしてリダイレクトループになってる件はその情報だけじゃ分からん 原因がわかりました。 https://sample.com:8065 の時のエラーは、 証明書の権限のようです。 rootユーザーにすると通るようです。 >>344 ありがとうございます。 location / { proxy_pass https://localhost:8065 ; } これはsample.comにアクセスしたとき、 8065ポートでアクセスするという意味ですよね? https://sample.com とうったとき、 繰り返しリダイレクトエラーになってしまいます。 この繰り返しエラーを防ぐにはどうしたらよいですか? ※https://sample.com:8065 入力はOKになりました。 >>345 君はなんでその部分だけに問題があると思ったの? >>346 proxy_set_headerをどう変えても、 全く変化がありませんでした。 confファイルではなくnginx自体の設定とかだったりするんでしょうか? httpsアクセスではリダイレクトエラーですが、 すべてをhttpだと空ファイルのダウンロードになるようです。 基本的な質問。 server { listen xx.xx.xx.xx:443 ssl http2; server_name hoge.com; } これが同じ.confだったり、 インクルードした別confファイルに複数書いてあった場合、 それぞれ追記している状態になるのでしょうか? 被っていたらそれは後のが上書き? それとも最後のserverだけが有効になるとかでしょうか? 特定のホストでALPN無効化する方法ある? listenにhttp2書いてないのに有効化されててh2対応のブラウザがそんなcipher受け付けないぞってエラー出す h2非対応のブラウザでは何のエラーもなく表示される 他のホストではh2使いたいのでそもそもモジュール入れないってのはやりたくない domain.comとsub.domain.comを運用しているとします。 それらはLet's Encryptで証明書作ってます。 sub.domain.com内のnginx.confのproxy_passでIPアドレス&ポート指定。 sub.domain.comにアクセスした時、 domain.comに発行した証明書だから気をつけろとでます。 sub.domain.comの証明書をproxy_passの指定先へ引き継がせるには、 どうすればよいでしょうか? proxy_ssl_* とかじゃなくって? ・具体的に何をやって(どのような設定を施して) ・どうなったか ぐらい書いた方がいいと思うけれども そいつ別スレでも書いてたけど質問するレベルじゃないから放置で良いぞ php-fpmとかのtcpポート渡しとソケットファイル渡しってパフォーマンスとかに差は出るものなんですか? mediawikiとmariadbとhhvmをtcpかソケットでabでやったら差は出たよ。 でもイントラで数人で使う分には体感差無かったよ。 Nginx、トップ100万サイトにおける利用率50%を突破 2019/04/16 15:13 後藤大地 https://news.mynavi.jp/article/20190416-809885/ Q-Successは4月12日(米国時間)、「Nginx is now used by 50% of the top 1 million websites.」において、トップ100万サイトでNginxが利用されている割合が50%を超えた と伝えた。 Nginxはトップ10万サイトでの利用がシェア66.9%と最も多く、これにトップ1万サイトの 61.1%が続いている。アクセス数が多いトップサイトではNginxへの移行が進んでいる。 Apacheは長期にわたってシェアの下落が続いている。特にアクセス数の多いサイトにおける 下落が大きく、アクセス数の多いサイトほどApacheからNginxへ移行する動きが続いている。 全体で見るとMicrosoft IISは高いシェアを確保しているが、アクセス数の多いトップ サイトでの採用割合は10%にも到達していない。 シェアの上ではまだまだ小さいが、LiteSpeedが存在感を示している点にも注目しておきたい。 LiteSpeedは高速軽量なWebサーバで、Apacheの設定ファイルと互換性があるという特徴がある。 ApacheをLiteSpeedに置き換えるだけで処理がスケールするようになることから、これまでの 設定を保ったままWebサーバの高速化を実現したい場合などに使われていると見られる。 教えて下さい。 fastcgi_passの書き方で、 unix:///var と スラッシュが3つ書かれていますが、 この意味ってなんですか? unix:/var とは違うのでしょうか? >>364 すいません。 自分のサーバを覗いてて、 unix:///varと書かれてました。 例えば vi ///var/abc.conf vi /var/abc.conf 同じファイル編集になりますね。 nginxが史上4番目となる1/3以上のシェアに到達 - Netcraft調査 2019/07/31 07:15 後藤大地 https://news.mynavi.jp/article/20190731-867785/ Netcraftは7月26日(米国時間)、「July 2019 Web Server Survey|Netcraft」において、 2019年7月におけるWebサーバのシェア調査の結果を伝えた。 2019年7月はnginxがさらにシェアを広げ、34.59%に到達した。これで、nginxはWeb全体の 3分の1以上のサイトで使われていることになる。3分の1を超えたWebサーバはNetcraftの 計測史上4番目とされている。 Netcraftは1995年8月からWebサーバ調査を開始している。24年間にわたってWebサーバの 計測を続けており、最初に3分の1以上のシェアを獲得したのはNCSA。NCSAはすぐにApacheに その座を奪われ、Apacheは1996年6月には3分の1以上のシェアに到達している。その後、 Apacheは2016年2月まで3分の1以上のシェアをキープした。 ApacheはMicrosoft IISに置き換わる形でシェアを失い、Microsoft IISが3分の1以上の シェアを獲得。Microsoft IISは2019年1月に3分の1以上のシェアを失い、2019年7月には nginxが3分の1以上のシェアに到達したことになる。 nginx初心者です。 domain.comにはアクセス出来るのですが、www.domain.comにするとアクセス出来ません。 これはDNSの設定がおかしいのでしょうか、それともnginx側の問題でしょうか sites-enable内のdomain.comファイルにはきちんとserver_name domain.com www.domain.com と書いてあります。 どうか助けてください。 それを切り分けできないレベルの人が来るスレじゃないよ >>371 初心者なのですみません。 切り分けってどことどこを切り分けたらいいのでしょうか? テンパってるかも知れないけど、 冷静になって探ってみ? この流れでだいたいわかるでしょ? 普通に解決しました dns側でcnameを忘れてた systemctl status nginxで見てみるとActive: failed (Result: exit-code)になってて動いてない だがドメインにアクセスするとサイトが表示される(キャッシュとかではない) んでnetstatやるとちゃんとnginxが80とか443でリッスンしてやがるの でもsystemctlじゃfailedになってて気持ち悪いったらありゃしない certbotやるときに一回stopさせてからinactive状態だった辺りがきっかけになってるような感じもする journalctl見たりsystemctl --failed見たがよくわからんかった 助けてえrい人 systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION ● nginx.service loaded failed failed A high performance web server and a reverse proxy server LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 1 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'. systemctl status nginxで見てみるとActive: failed (Result: exit-code)になってて動いてない だがドメインにアクセスするとサイトが表示される(キャッシュとかではない) んでnetstatやるとちゃんとnginxが80とか443でリッスンしてやがるの でもsystemctlじゃfailedになってて気持ち悪いったらありゃしない certbotやるときに一回stopさせてからinactive状態だった辺りがきっかけになってるような感じもする journalctl見たりsystemctl --failed見たがよくわからんかった ずっと困ってる ふわっとした精神論っぽいのじゃなくてちゃんとしたアドバイスくれる方もとむ systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION ● nginx.service loaded failed failed A high performance web server and a reverse proxy server LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 1 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'. Apache でも動いてるのでは?Linuxだったら、 sudo lsof -i:80 で何が動いてるかみてみては? >>379 それがnginxが動いてるんです・・・ つまり、systemctlで確認するとfailedなのにlsofで80を占領してるプロセスはnginxのもので もうなにがなんやらって感じですごい気持ち悪いです サイトにアクセスしてもちゃんと表示されるんですけどね COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 22882 root 8u IPv4 1051405 0t0 TCP *:http (LISTEN) nginx 22891 www-data 8u IPv4 1051405 0t0 TCP *:http (LISTEN) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 22882 root 9u IPv4 1051406 0t0 TCP *:https (LISTEN) nginx 22891 www-data 9u IPv4 1051406 0t0 TCP *:https (LISTEN) とりあえずサーバーを再起動させて無理やり直しました 今後同じ症状が出たときのためにも回答やアドバイスは継続して受け付けたいです nginx/error.log は一切見てないのか 79.26.194.187 - admin [13/Oct/2019:12:40:50 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" 88.6.145.23 - admin [13/Oct/2019:18:16:45 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" 96.58.45.5 - admin [13/Oct/2019:21:49:01 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" 209.141.34.34 - admin [13/Oct/2019:22:07:47 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" 175.143.81.87 - admin [14/Oct/2019:02:19:30 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" 114.32.5.51 - admin [14/Oct/2019:02:54:11 +0000] "POST /editBlackAndWhiteList HTTP/1.1" 444 0 "-" "ApiTool" IP直アクセスには全部444にするようにしてるんだが、このログってbasic認証突破されてるやばいログか? なんかログ眺めてたらadminとかあってマジで震えが止まらん basic認証なんかやってないはずなんだが とりあえず怖いからカスタムlogformat作ってリクエストボディも記録するようにしといたお・ 連続ですまない こいつらのIP調べたらabuseのってたりして明らか怪しい攻撃者なのは間違いない あとerrorログとかも含めて直近のログgrepしたが他にこいつらのアクセスしたログは残ってなかった ログレベルなんだが明示的にはなにもしてしてない(warnとかそういうやつ)状態なんだがデフォルトはwarn? ログ内の$remote_user部分にadminって書いてあるから、adminでログイン後にいじられてるのかと思ったんですが、、 RequestHeader 見てみるとか nginx なら modsecurity3 がお手軽かな すまん早とちりだったorz 自分でcurl -u user:user -k https://localhost/ やってみたらログこうなったわ 127.0.0.1 - user [14/Oct/2019:18:35:39 +0000] "GET / HTTP/1.1" 403 162 "-" "curl/7.58.0" 多分認証突破してなくてもremote_userには試行したユーザー名が出るのか・・・? 何か誤解があったら教えてほしい >>388 modsecurity入れてみるかな fail2banも導入しようと思う ===> nginx-1.16.1_11,2 has known vulnerabilities: nginx-1.16.1_11,2 is vulnerable: NGINX -- HTTP request smuggling CVE: CVE-2019-20372 WWW: https://vuxml.FreeBSD.org/freebsd/c1202de8-4b29-11ea-9673-4c72b94353b5.html rootのパス/usr/share/nginx/htmlを/usr以外の場所を指定したいんですが /usr以下のパスを指定しないとphpのファイルにアクセスしたときにfile not foundになります。 原因は何が考えられますでしょうか? default.confの中身です http://codepad.org/2BuCy3S9 いまから学ぶなら何の本orサイトがおすすめですか?apacheをちょっと触ったことがある程度の基礎知識しかありません。 自分でUbuntuかなんかにインストールして使ってみればいいでしょ nginx実践ガイド nginx実践入門 あたりですかね、最新ではないですけど Nginxの公式ブログやドキュメントを読むのがいいよ。 質問です。 Debian OSでDjangoのフレームワークを使っていて Webサーバーは内蔵のものではなく Nginx uwsgiを使いたいたく正常に起動はしているが localhost/8000で接続出来ません! ImportError at / Cannot import name path と出てしまいます。 Pythonのバージョンは3を使ってるのに エラーメッセージにはPython Version 2.7.16と でてしまいます。 どうしたらDjangoでNginxサーバーを使えるでしょうか? 質問です。 Debian OSでDjangoのフレームワークを使っていて Webサーバーは内蔵のものではなく Nginx uwsgiを使いたいたく正常に起動はしているが localhost/8000で接続出来ません! ImportError at / Cannot import name path と出てしまいます。 Pythonのバージョンは3を使ってるのに エラーメッセージにはPython Version 2.7.16と でてしまいます。 どうしたらDjangoでNginxサーバーを使えるでしょうか? すみません!ページ読み込むと再度書き込みされてしまいます・・・ >>401 そんなレベルの質問では、 > Nginx uwsgiを使いたいたく正常に起動はしているが そもそもソフトウェアアプリケーションが 本当にNginxで正常に起動しているか、怪しいので、 Nginxで uwsgi のみならず、 一般的に、Webサーバ上で外部ソフトウェアアプリケーションが どう動いているか、基本的なことを勉強してください。 質問です。 Djangoでnginxサーバーを使ってサイトを公開したい場合はvar/www/htmlにテンプレートファイルを置くんですか? それともアプリケーションファイルごと置くんですか? 外部からサイトを見る場合はDNSはどうやって設定したらいいですか? それともetc/httpdの設定ファイルの DocumentRootをDjangoのアプリのパスに変更すれば よろしいでしょうか? マルチするなと言う人がいますが まだ回答を待たないといけないんですか? マルチするなというなら、まずは自分が 迅速に質問に答えてください。 それが出来ないなら仕切る権限はありません。 回答期限を設けさせてもらいますね。 本日の17時までです。 それまでに回答がなければ他スレで質問しますし 今後はマルチに対して一切文句を言わないでください。 答えることもできない能力の低いあなたには その資格がありません。 やっぱりApacheの方がいい気がしてきた。 スレ過疎ってるし人気ないんだね。 nginxやめちゃおうかな〜 Apacheだろうが、Nginxだろうが、h2oだろうが、 どのWebサーバでも、Djangoアプリケーションを アプリケーションサーバで動かすのは、結局同じだけどなw 基本的なことが分からないかぎり、 何を使っても、同じところで困ると思いますが、 まっ、がんばってください。 >>411 本屋でNginxの入門書を見たんですが 自分にはかなり難しい内容に感じまして Webサイトを作るのにNginxの本を一冊、 読むことは必要なんですか? すごく遠回りな気がするのですが ネットで調べてもよく分からないし とりあえず読んでみるしかないのでしょうか・・・ >>414 >自分にはかなり難しい内容に感じまして ということは >すごく遠回りな気がするのですが もっと遠回りが必要ということでしょう カレー皿が欲しいぜってのに反射炉の建て方から学んでるような気がするけど、どんなWebサイトを作ろうと学んでんだろうか。 >>417 それなんですよ! Webサイト作るのにネットワークエンジニアみたいな 知識がいるのかどうかって・・・ 確かに出来ることなら熟知しておきたいですけど htmlとかcssとかSQLも勉強しないといけないし どこから手をつけたらいいのやら・・・ 何を作りたいか考えていたら、いつ思いつくか 分からないので勉強しながら可能性を探り 考えようかと。 >>416 Nginxではなくてネットワークの基本からでしょうか・・・ >>415 自分は読書スピードが遅くて1日に3ページから5ページくらいまでしか読めないんですけど 速読が出来る人って全部頭に入っているんですか? 1日に一冊読めたとしても頭に全部入ってなければ 無駄な労力ですよね? それだったら1日1項目でも確実に習得した方がいいかと・・・ なので一冊を読むのに何ヶ月もかかってしまうので 3冊くらいを並行して読んでいっています。 今後どのように進むのかは知らないが httpとは何かとかそれ以前に 通信って何? から学んだ方が良いと思うよ 今じゃなくて今後の事だけどな >>420 何かしらのWebアプリを作りたいのですが ショッピング、動画や画像投稿、コミュニティサイトと何をしても後追いなので、まだ進路が見えません・・・ ブログだったら既にあるプラットフォームを使った方が人目にふれると思うので。 ただ今は全体像を掴めたらいいなと思いますが 1人でサイト運営してる人はアイコンやら画像調整やらでフォトショやイラレも使いこなしているのでしょうか・・・ 自分は電気系の学校行ってたわけじゃないので 通信や電子の基礎的なこともおいおい勉強しなければとは思っていました。 半導体の本も少し見ましたが何が何だか分かりません。微分積分やら数式が分からないとチンプンカンプンですね。 「wordpress」あたりから勉強すりゃええんでねえ?知らんけど。 nginxのproxy cacheとphp-fpmでWordPressのサイトを運営しています。 サーバーがサクサク動いてる状態よりロードアベレージが高い時の方がPagespeed insightsで良いスコアが出ます。 低負荷時︰モバイル 84〜86 (PC 97〜98) 高負荷時︰モバイル 90〜96 (PC 98〜100) 通常とは逆の結果に困惑しています。 worker processをautoに設定してるから低負荷時にプロセスが減っているのが原因ですか? nginxには、site-enabled にシンボリックリンクを張るコマンドは無いの? a2ensiteコマンドみたいなやつ >>422 マイコンエンジニアになるのでもなければ、半導体の勉強までしなくても良いのでは? CPUや主記憶やGPUなど、PCの基礎的な事くらいは知っておいた方が良いだろうけど。 マッチングアプリでITエンジニアとマッチした人へ。「nginx」を読ませてみて下さい。変な読み方をしたら多分偽物 https://togetter.com/li/1938057 会社乗っ取り犯として命狙われてもクラブ行けば金のとりからも 仕事してたくらいの内容まとめてる人いないのかな read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる