Centos 7(仮想ホストを含む)に基づいてNginxを構築する

Nginxは、パフォーマンスを最適化するために特別に開発されています。その最大の利点は、安定性とシステムリソースの消費量が少ないこと、およびhttp同時接続の処理能力が高いことです。1つの物理サーバーで20,000〜50,000の同時要求をサポートできます。ソーシャルネットワーキング、ニュース情報、eコマース、仮想ホスティングなどのサービスを提供する多くの企業が、Webサービスを提供するためにNginxを選択しています。現在、中国本土のnginx Webサイトのユーザーには、Sina、Netease、Tencentが含まれ、有名なマイクロブログPlurkもnginxを使用しています。 。
ApacheとNginxの違い:[https://blog.51cto.com/14227204/2435423](https://blog.51cto.com/14227204/2435423)
Nginxのインストールを開始します。
1.準備:
Centos7システムとCD
ソフトウェアパッケージをコンパイルしてインストールします:[https://pan.baidu.com/s/1-GaLSYxt4fP5R2gCVwpILA](https://pan.baidu.com/s/1-GaLSYxt4fP5R2gCVwpILA)**抽出コード:kph5 **
公式サイト[https://nginx.org/](https://nginx.org/)からもダウンロードできます。
2. Nginx Webサイトの構築を開始します:
必要な依存関係パッケージをインストールし、現在のhttpdサービスをアンインストールします(そうでないことが確実な場合は、省略できます)。

[ root@mysql yum.repos.d]# yum -y erase httpd
[ root@mysql /]# yum -y  install pcre-devel zlib-devel        #必要な依存関係をインストールする

Nginxを最適化するためのコンパイル、インストール、および構成:

[ root@mysql /]# useradd -M -s /sbin/nologin nginx         #Nginxはデフォルトでは誰も実行しないため、専用のユーザーアカウントを作成することをお勧めします
[ root@mysql /]# tar zxf nginx-1.12.0.tar.gz -C /usr/src/[root@mysql /]# cd /usr/src/nginx-1.12.0/[root@mysql nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx \
>- - group=nginx  --with-http_stub_status_module && make && make install
[ root@mysql /]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/       #コマンドで簡単に使用できるリンクファイルを作成する

Nginx操作制御:
1、 構成ファイルを確認してください

[ root@mysql /]# nginx -t          #構成ファイルを確認します。OKまたは成功が表示されれば、問題はありません。
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、 Nginxを開始および停止します

[ root@mysql /]# nginx                                   #起動
[ root@mysql /]# killall -s HUP nginx              #再起動オプション-■HUPは同等です-1[root@mysql /]# killall -s QUIT nginx             #オプションを閉じる-■QUITはと同等です-3

**注:最小限にインストールされたcentos 7には、デフォルトでkillallコマンドがインストールされていません。「yum-yinstallpsmisc」**を使用できます。
Nginxサービスの開始、停止、再読み込み、およびその他の操作をより便利にするために、Centosシステムの管理習慣に沿ったNginxサービススクリプトを作成できます。

[ root@mysql /]# vim /etc/init.d/nginx 
#! /bin/bash
# chkconfig:-9920
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"case"$1"in
 start)
  $PROG
  ;;
 stop)
  kill -s QUIT $(cat $PIDF);;
 restart)
  $0 stop
  $0 start
  ;;
 reload)
  kill -s HUP $(cat $PIDF);;*)
  echo "USAGE:$0 {start | stop | restart | reload}"
  exit 1
esac
exit 0[root@mysql /]# chmod +x /etc/init.d/nginx             //許可された[root@mysql /]# chkconfig --add nginx                   //システムサービスとして追加[root@mysql /]# systemctl start nginx                   //Nginxを起動します
[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
...................
# user  nobody;//実行中のユーザー
worker_processes  1;//作業プロセスの数

# error_log  logs/error.log;//エラーログファイルの場所
# error_log  logs/error.log  notice;
# error_log  logs/error.log  info;

# pid        logs/nginx.pid;//PIDファイルの場所

events {
  use epoll;//epollモデルを使用してパフォーマンスを向上させる
 worker_connections  4096;//プロセスあたり4096の接続}

上記の最適化はグローバル構成に基づいて実装されており、各最適化の意味は次のとおりです。

1、 worker_processes:ワーカープロセスの数を表します。サーバーに複数のCPUまたはマルチコアプロセッサがある場合は、CPUコアの総数を参照して、ワーカープロセスの数を指定できます。特定の意味は、worker_connections構成アイテムに反映されます。
2、 worker_connections:この構成アイテムは、各プロセスによって処理される接続を指定します。通常は10000未満(デフォルトは1024)であり、上記のワーカープロセス数の構成アイテムに関連付けられます。たとえば、ワーカープロセスの数が8の場合、各プロセスプロセスは4096の接続、Nginxがサービスを提供できるようにする接続の数は通常30,000を超えています(4096 * 8 = 32768)。もちろん、サーバーハードウェアやネットワーク帯域幅などの物理的条件のパフォーマンスに依存します。

ドメイン名に基づいて仮想Webホストを構築します:
HTTP構成:
Nginx構成ファイルは、「http {}」マークを使用して、アクセスログ、httpポート、Webページディレクトリ、デフォルトの文字セット、接続保持、仮想Webホスト、php解析、およびその他のグローバルWebサイト設定を含むHTTPサーバーを設定します。その一部は、サブ定義タグ「server {}」に含まれています。 「サーバー{}」は特定のWebサイト設定を表します。

[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
................... コンテンツの一部を省略
http {
 include       mime.types;
 default_type  application/octet-stream;

 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '//これらの3行を削除します# '$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';

 access_log  logs/access.log  main;//アクセスログの場所

 sendfile        on;//効率的なファイル転送モードを有効にする
 # tcp_nopush     on;

 # keepalive_timeout  0;
 keepalive_timeout  65;//接続保持タイムアウト

 # gzip  on;

 server {//Webサービス監視構成
  listen       80;//リスニングアドレスとポート
  server_name  www.test1.com;//サイト名FQDN

  charset koi8-r;//Webページのデフォルトの文字セット
  access_log  logs/host.access.log  main;

  location /{//ルートディレクトリの構成
   root   html;//インストールディレクトリを基準にした、Webサイトのルートディレクトリの場所
   index  index.html index.php;//デフォルトのホームページ、インデックスページ}

  error_page   500502503504/50x.html;//内部エラーフィードバックページ
  location =/50x.html {//エラーページの構成
   root   html;}

上記の構成は、Webサイトサービスを構築するためのものです。複数のサービスを実行する場合は、構成ファイルに「{}」が多すぎるため、構成ファイルの最後にあるテンプレートをコピーして「server {}」構成に貼り付けることができます。エラーを回避するには、次のように元の「サーバー{}」にコピーする必要があります。

[ root@mysql /]# vim /usr/local/nginx/conf/nginx.conf
server {
  listen       80;
  server_name    www.test1.com;
  charset utf-8;
  access_log  logs/host.access.log  main;

  location /{
   root   /var/www/test1;
   index  index.html index.php;}
  location /status {
    stub_status on;
    access_log off;}}
 server {
  listen       80;
  server_name  www.test2.com;

  charset utf-8;
  access_log  logs/host.access.log  main;

  location /{
   root   /var/www/test2;
  index  index.html index.php;}

この時点で仮想ホストの構成が完了し、サービスを再起動して構成を有効にします。DNSは自動的に構成されます。次のブログ投稿を参照してください: [https://blog.51cto.com/14227204/2384462](https://blog.51cto.com/14227204/2384462)

[ root@mysql /]# nginx -t                   #サービスを再開する前に、確認することをお勧めします
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[ root@mysql /]# systemctl restart nginx
[ root@mysql named]# mkdir -p /var/www/test1             #ウェブサイトのルートディレクトリを作成する
[ root@mysql named]# mkdir -p /var/www/test2
[ root@mysql named]# echo www.test1.com >/var/www/test1/index.html          #テストファイルを作成する
[ root@mysql named]# echo www.test2.com >/var/www/test2/index.html

クライアントは検証を開始します:

現在のステータス情報を表示します。

別のドメイン名をテストします。

Recommended Posts

Centos 7(仮想ホストを含む)に基づいてNginxを構築する
CentOS7.2およびNginx構成仮想ホスト
dockerに基づいてElasticsearch6.2.4(centos)を構築する
LinuxでNginx環境を構築する(CentOS)
CentOSに基づいてDiscuzフォーラムを構築する
CentOSに基づいてWeChatアップルトサービスを構築する
CentOS7に基づいてNginxリバースプロキシを構成する
CentOS7に基づいてNginxロードバランシングを構成する
CentOS7に基づいてNginxフォワードプロキシを構成する
CentOSに基づいてWeChatアップルトサービスを構築する
centos7でk8s1.9.9をビルドする
CentOS7に基づいて自動的に起動するようにNginxを構成します
ジェンキンスはセントスに基づいて構築されています
CentOSでMariaDBレプリケーションを構築する
CentOS7に基づくZabbix3.4をインストールします
CentOS7にNginxサーバーをインストールします
CentOS7でApache仮想ホストを設定する方法
一般的なLinux操作(centos7に基づく)
CentOS8にNginxをインストールする方法
(centos7)linuxビルドnginxロードバランシングビルド
ubuntuに基づいてDiscuzフォーラムを構築する
CentOS7ビルドFastDFS分散ファイルシステム(オン)
Ubuntuでアーム仮想オペレーティング環境を構築する
CentOS8仮想マシンがWindows10ホストフォルダーにアクセスする方法の分析
クラウドサーバーはCentOSに基づいてDiscuzフォーラムを構築します
CentOSでNginxサーバーをすばやく構築する方法
centos7.2でLAMP環境を構築する方法
centos8にnginxをインストールするための詳細なチュートリアル(グラフィック)
Centos7.3はnginxをインストールします
CentOS7ビルドジェンキンス
Centosビルドlnmp
Centos7ビルドpython3.8.5 + scrapy + gerapy
Centos7はNginxをインストールします
Centosサーバーでgiteaをセットアップする方法を教える3分
Ubuntuプラットフォームに基づくOSX10.15仮想マシンをインストールします
CentOS 7にKVMをインストールし、仮想マシンを作成します
仮想マシンcentosとホストが相互にpingを実行します
CentOSはNginxを使用してダウンロード機能サーバーを構築します
Let'sEncryptを使用してCentOS8でNginxを保護する方法