<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>devkuma – Nginx</title>
    <link>https://www.devkuma.com/jp/tags/nginx/</link>
    <image>
      <url>https://www.devkuma.com/jp/tags/nginx/logo/180x180.jpg</url>
      <title>Nginx</title>
      <link>https://www.devkuma.com/jp/tags/nginx/</link>
    </image>
    <description>Recent content in Nginx on devkuma</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>jp</language>
    <managingEditor>kc@example.com (kc kim)</managingEditor>
    <webMaster>kc@example.com (kc kim)</webMaster>
    <copyright>The devkuma</copyright>
    
	  <atom:link href="https://www.devkuma.com/jp/tags/nginx/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Nginx</title>
      <link>https://www.devkuma.com/jp/docs/nginx/overview/</link>
      <pubDate>Wed, 26 May 2021 09:21:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/nginx/overview/</guid>
      <description>
        
        
        &lt;h2 id=&#34;nginxとは&#34;&gt;Nginxとは？&lt;/h2&gt;
&lt;p&gt;Nginxは、ロシアの開発者Igor Sysoevが開発した無料のオープンソースWebサーバーである。&lt;/p&gt;
&lt;p&gt;Apacheの代替として提案されたWebサーバーソフトウェアである。Apacheには、多数の同時接続時の処理に弱いという問題があった。クライアントが1万台程度になると問題が発生することがある。
そこで、高負荷に強いWebサーバーソフトウェアとして開発されたのがNginxである。&lt;/p&gt;
&lt;h2 id=&#34;webサーバーとは&#34;&gt;Webサーバーとは？&lt;/h2&gt;
&lt;p&gt;外部から入ってくるリクエストを受け取り、Webサーバーで静的コンテンツを応答し、アプリケーションサーバーに動的コンテンツを要求する場合は、アプリケーションサーバーの処理結果をクライアントへ応答する。&lt;/p&gt;
&lt;p&gt;このWebサーバーに該当するものがNginxである。&lt;/p&gt;
&lt;h2 id=&#34;apacheとnginxの違い&#34;&gt;ApacheとNginxの違い&lt;/h2&gt;
&lt;p&gt;Nginxとよく一緒に取り上げられるのがApacheである。Apacheは代表的なWebサーバーである。Nginxはもともと、Apacheや一般的なWebサーバーが持つ、大量同時アクセスへの応答が悪くなる問題を解決するために生まれた。&lt;/p&gt;
&lt;h3 id=&#34;主な違い&#34;&gt;主な違い&lt;/h3&gt;
&lt;p&gt;Apacheの特徴&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Webサーバーとしての機能が豊富で使いやすい。&lt;/li&gt;
&lt;li&gt;多機能な分、サーバーコストは高い。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nginxの特徴&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Webサーバーとの仲介役となりリクエストに応答するリバースプロキシ機能があり、同時リクエストの処理に特化している。&lt;/li&gt;
&lt;li&gt;non-blocking I/Oをサポートしており、大量データ転送と大量同時接続に特化している。&lt;/li&gt;
&lt;li&gt;シンプルなためサーバーコストが低い。&lt;/li&gt;
&lt;li&gt;利点として、Webサーバーの存在を隠すことができ、Webサーバーが複数ある場合には処理を分散できる。つまり、ロードバランサーのような機能を果たす。これにより、多数の同時リクエストに強いという特徴を持つ。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;apacheとnginxの動作方式&#34;&gt;ApacheとNginxの動作方式&lt;/h3&gt;
&lt;p&gt;Apacheはマルチプロセスのプロセス中心アーキテクチャである。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;各リクエストをプロセスに割り当てるため、大量のリクエストが来るとプロセスが同時に起動し、オーバーヘッドが非常に大きくなるという欠点がある。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nginxはシングルスレッドモデルのイベント駆動アーキテクチャである。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Node.jsのようなイベントループ方式である。これは、単一スレッドでループを回し、キューに蓄積されたイベントを処理していく方式である。&lt;/li&gt;
&lt;li&gt;イベントループ方式を採用することで、少数のプロセスだけで大量のリクエストを処理できる。&lt;/li&gt;
&lt;li&gt;これによりC10K問題を解決できる。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;nginxのインストール&#34;&gt;Nginxのインストール&lt;/h2&gt;
&lt;h3 id=&#34;macでのインストール&#34;&gt;Macでのインストール&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;brew&lt;/code&gt; コマンドを使用してインストールする。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% brew install nginx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のコマンドを実行し、&lt;code&gt;http://localhost:8080&lt;/code&gt; にアクセスしてみる。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% nginx
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;次のコマンドで停止する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% nginx -s stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;設定ファイルは次の場所に存在する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/usr/local/etc/nginx/nginx.conf
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;centosでのインストール&#34;&gt;CentOSでのインストール&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;/etc/yum.repos.d/nginx.repo&lt;/code&gt; を作成する。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;yum&lt;/code&gt; コマンドでインストールする。&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo yum install nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;nginxコマンド&#34;&gt;Nginxコマンド&lt;/h2&gt;
&lt;h3 id=&#34;起動&#34;&gt;起動&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;停止&#34;&gt;停止&lt;/h3&gt;
&lt;p&gt;CentOS 6、Amazon Linux&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nginx -s stop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CentOS 7、Amazon Linux 2&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl stop nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;再起動&#34;&gt;再起動&lt;/h3&gt;
&lt;p&gt;CentOS 6、Amazon Linux&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/etc/init.d/nginx restart
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CentOS 7、Amazon Linux 2&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl restart nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;スタートアップ登録&#34;&gt;スタートアップ登録&lt;/h3&gt;
&lt;p&gt;CentOS 7、Amazon Linux 2&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl enable nginx # 登録
systemctl disable nginx # 削除
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;設定の再読み込み&#34;&gt;設定の再読み込み&lt;/h3&gt;
&lt;p&gt;CentOS 6、Amazon Linux&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nginx reload
service nginx reload
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CentOS 7、Amazon Linux 2&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;systemctl reload nginx
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;設定ファイルチェック&#34;&gt;設定ファイルチェック&lt;/h3&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;nginx -t
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;設定ファイルの場所&#34;&gt;設定ファイルの場所&lt;/h3&gt;
&lt;p&gt;メイン設定ファイル&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd /etc/nginx/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;各サーバー設定ファイル&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cd /etc/nginx/conf.d/
&lt;/code&gt;&lt;/pre&gt;
      </description>
      
      <category>Nginx</category>
      
    </item>
    
    <item>
      <title>Nginx</title>
      <link>https://www.devkuma.com/jp/docs/nginx/</link>
      <pubDate>Wed, 26 May 2021 09:21:39 +0900</pubDate>
      <author>kc@example.com (kc kim)</author>
      <guid>https://www.devkuma.com/jp/docs/nginx/</guid>
      <description>
        
        
        
      </description>
      
      <category>Nginx</category>
      
      <category>WEB</category>
      
    </item>
    
  </channel>
</rss>
