Help us understand the problem. What is going on with this article?

Nginxを使って、1つのサーバーで複数サイトを運用

More than 1 year has passed since last update.

やりたいこと

1つのサーバーで複数のサイトを構築したい!

nginxをインストール

さくらVPSで、SSL+CentOS7+Nginx+PHP7+MySQLを構築する方法 を参考にnginxをインストールします。

複数サイト用に設定ファイルのディレクトリ作成

各サイトの設定ファイルを置くディレクトリ(環境に合わせて好きな場所に)

$ mkdir /etc/nginx/conf.d/sites-available

メンテナンス性を高めるために、設定ファイルのシンボリックリンクを張るディレクトリ

$ mkdir /etc/nginx/conf.d/sites-enable

nginxに権限付与

$ sudo chown -R nginx.nginx /etc/nginx/conf.d/sites-*

運用したい各サイトのソースを置くディレクトリを作成

$ mkdir /var/www/html/{service_name}
$ chown -R nginx.nginx /var/www/

各サイトの設定ファイルを作成

vim /etc/nginx/conf.d/sites-available/{service_name}.conf

内容は、

server {
    listen       80;
    server_name  {ドメイン};
    index        index.php;
    access_log   /var/log/nginx/{service_name}.access.log; // 環境に合わせて指定
}

各サイトの設定ファイルのシンボリックリンクを張る

$ ln -s /etc/nginx/conf.d/sites-available/{service_name}.conf /etc/nginx/conf.d/sites-enable/

各サイトの設定ファイルを読み込むようにする

$ vim /etc/nginx/nginx.conf

以下をhttp { ... }の中に追記し、各サイトの設定ファイルをシンボリックリンクで読み込めるようにする。

include /etc/nginx/conf.d/sites-enable/*.conf;

/etc/nginx/nginx.confと各サイトの設定ファイルの全体像はこのようになります。

/etc/nginx/nginx.confの内容

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    server_tokens       off;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    index   index.php index.html index.htm;

    include /etc/nginx/conf.d/sites-enable/*.conf;
}

各サイトの設定ファイルの内容

server {
    listen       80;
    server_name  {ドメイン};
    index        index.php;
    access_log   /var/log/nginx/{service_name}.access.log;
}

nginx再起動

$ systemctl restart nginx.service
2ko2ko
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした