使用Nginx正确部署多个站点

时间:2014-09-05 16:43:53

标签: ubuntu nginx

我是服务器的业余爱好者,我正在我的本地ubuntu机器上设置Nginx。我有多个站点在本地工作作为转移到实时服务器的练习。我不确定这是否是相关网站的最佳设置。它们是wordpress网站。

每个网站文件夹都在var/www

/var/www/site1
/var/www/site2

我sym将/etc/nginx/sites-available/default中的默认文件与/etc/nginx/sites-enabled/default相关联。保持原样。注意听部分;

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

使用此文件作为基础,我对两个站点都做了相同的操作,为可用站点中的每个站点创建单独的文件,并将sym链接到启用站点的站点。这是site1s设置;

server {
        listen 80;
        listen [::]:80;

        root /var/www/site1;
        index index.php index.html index.htm;

        server_name local.site1.com; #for testing, edited in hosts

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

我的问题很简单;这是设置Nginx服务器的有效方法吗? This线程列出了我的设置作为选项,但没有任何关于它的效率。我在默认启用的网站中将默认设置为' default_server'我的实际网站只是听80端口;我并没有真正了解港口..

我想要问一个专注的'此时每个站点的数据库服务器(块),但也许这是一个完全不同的鱼群..

1 个答案:

答案 0 :(得分:3)

您的配置没问题,只需使用包含,您就可以从1个文件更改所有网站的全局参数。

site1s.conf:

server {
   root /var/www/site1;
   server_name local.site1.com; #for testing, edited in hosts

   include /etc/nginx/conf.d/global.cnf;
}

site2s.conf ...从site1s.conf克隆的siteNs.conf(你只用主机名更改了2行)

/etc/nginx/conf.d/global.cnf(或者你喜欢的任何名字,但最好没有.conf扩展名以避免nginx自动加载 - 我不知道你所有的配置):

listen 80;
listen [::]:80;

index index.php index.html index.htm;

location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
}

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
        root /usr/share/nginx/html;
}

location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}