我是服务器的业余爱好者,我正在我的本地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端口;我并没有真正了解港口..
我想要问一个专注的'此时每个站点的数据库服务器(块),但也许这是一个完全不同的鱼群..
答案 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;
}