GNU/Linux >> Linux の 問題 >  >> Cent OS

UbuntuとCentOSでNginxサーバーブロックを設定する方法

このチュートリアルでは、Ubuntu16.04とCentOS7でnginxサーバーブロックを設定する方法を段階的に説明します。Nginxサーバーブロックは、多くの場合、単一のIPアドレスで複数のウェブサイトを実行するために使用されます。

このチュートリアルはNginxのみを対象としていることに注意してください。 Apacheを使用する場合は、次のことを行う必要があります 仮想ホストを設定する

1。 UbuntuにNginxをインストールする

サーバーのOSパッケージが完全に最新であることを確認してください:

apt-get update 
apt-get upgrade

Apacheを停止して削除し、次のコマンドを使用してnginxをインストールします。

service apache2 stop
apt-get remove apache2
apt-get autoremove
apt-get install nginx

デフォルトのnginx構成ファイルを削除します:

rm /etc/nginx/sites-enabled/default

nginxサービスを有効にして起動時に開始し、開始します:

systemctl enable nginx
systemctl start nginx.service

2。 CentOSにNginxをインストールする

次のコマンドを実行して、すべてのOSパッケージが最新であることを確認します。

yum clean all
yum update

Apacheが仮想サーバーにインストールされて実行されている場合は、Apacheを停止して削除します。

systemctl stop httpd
systemctl disable httpd
yum remove httpd

nginxをインストールします:

yum install nginx

また、PHPとMariaDBをインストールすることもできるので、次のコマンドを実行します。

yum install nginx mariadb mariadb-server php php-fpm php-cli php-curl php-gd php-mbstring php-mysql php-xml

/etc/php-fpm.d/www.conf構成ファイルを編集して変更します:

user = apache
group = apache

宛先:

user = www-data
group = www-data

次のコマンドを実行します:

chown www-data: -R /var/lib/php/session

PHP-FPM、Nginx、MariaDBサービスを開始し、起動時に開始できるようにします:

systemctl start php-fpm
systemctl start nginx
systemctl start mariadb
systemctl enable php-fpm
systemctl enable nginx
systemctl enable mariadb

3。 nginxを構成し、nginxサーバーブロックを設定します

「nginx.conf」という名前のメインのnginx構成ファイルでコアディレクティブを構成しましょう。サーバーの/etc/nginx/ディレクトリにあるはずです。

vi /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

ユーザー –nginxサーバーを所有して実行するユーザー。

worker_processes –一般に、nginxworker_processes構成をCPUの数に設定するのが最善です。たとえば、SSD 4 VPSプランを使用している場合は、worker_processesを4に設定します。

サーバー上のCPUの数を確認するには、次のコマンドを使用できます。

#cat /proc/cpuinfo | grep processor | wc -l

4

pid –nginxがマスタープロセスIDまたはPIDを書き込む場所。

CentOSを使用する場合は、Webサイト用の新しいNginx構成ファイルを作成します。

vi /etc/nginx/conf.d/domain1.com.conf

次のコンテンツを追加します:

server {
    server_name www.domain1.com domain1.com;
    listen 80;
    root /var/www/html/domain1.com;
    access_log /var/log/nginx/domain1.com-access.log;
    error_log /var/log/nginx/domain1.com-error.log;
    index index.php;
 
    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
        access_log off;
        expires max;
    }

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

}

同じサーバー上で(同じIPアドレスを使用して)複数のWebサイトをホストする必要がある場合は、新しいサーバーブロックを作成できます。 Webサイトごとに新しい構成ファイルを作成することをお勧めします。

たとえば、/ etc / nginx / conf.d / domain2.com.confという名前の2番目のnginx構成ファイルを作成し、/ etc / nginx / conf.d / domain1.com.confと同じコンテンツを追加しますが、必ず置き換えてください。 domain1.comの2番目のドメイン名には、Webサイトのドキュメントルート、ログファイルの場所などが含まれます。

server {
    server_name www.domain2.com domain2.com;
    listen 80;
    root /var/www/html/domain2.com;
    access_log /var/log/nginx/domain2.com-access.log;
    error_log /var/log/nginx/domain2.com-error.log;
    index index.php;
 
    location / {
        try_files  $uri $uri/ /index.php?$args;
    }

    location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
        access_log off;
        expires max;
    }

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

}

Ubuntu OSを使用している場合は、「domain1.com.conf」nginx構成ファイルを/ etc / nginx/sites-availableディレクトリに作成します。

vi /etc/nginx/sites-enabled/domain1.com.conf

(上記のコンテンツと同じコンテンツ、つまりCentOSサーバー上の/etc/nginx/conf.d/domain1.com.confを追加します)。

次に、このファイルからサイト対応ディレクトリへのシンボリックリンクを作成します。

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

同じ手順を繰り返し、サーバーでホストされている他のすべてのWebサイトの新しい構成ファイルを作成します。

4。 Nginx構成をテストする

nginx -t

テストが成功したら、Nginxサービスを再起動します:

systemctl restart nginx

Webサイトファイルを/var/www/html/domain1.com、/var/www/html/domain2.com/var/www/html/domainN.comディレクトリにアップロードします。

Webサーバーユーザー(www-data)は、/ var / www / html / domain1.com、/var/www/html/domain2.com、/var/www/html/domainN.comディレクトリにアクセスできる必要があります。次のコマンドを実行することで簡単に実行できます。

chown -R www-data:www-data /var/www/html/

もちろん、UbuntuとCentOSでNginxサーバーブロックを設定する方法は必要ありません。NginxVPSホスティングサービスのいずれかを使用している場合は、専門のLinux管理者にnginxサーバーの設定を依頼するだけです。ブロック あなたのために。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS。 この投稿が気に入った場合は、UbuntuとCentOSでNginxサーバーブロックを設定する方法について、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信してください。ありがとう。


Cent OS
  1. Ubuntu20.04でリバースプロキシとしてNginxを設定する方法

  2. CentOS 8でDHCPサーバーをセットアップする-その方法は?

  3. Ubuntu20.04でNFSサーバーとクライアントをセットアップする方法

  1. CentOS 7でNginx仮想ホスト(サーバーブロック)を設定する方法

  2. UbuntuとCentOSのNginxでHTTP/2を有効にする方法

  3. CentOSとUbuntuでホスト名を変更する方法

  1. Ubuntu18.04でNginxサーバーブロックを設定する方法

  2. Ubuntu20.04でNginxサーバーブロックを設定する方法

  3. CentOS7でNginxサーバーブロックを設定する方法