设置nginx绑定多个域名

阅读:267 2019-03-19 15:33:55 来源:csdn

nginx绑定多个域名,可把多个域名规则写一个配置文件里,也可分别建立多个域名配置文件,一般为了管理方便,建议每个域名建一个文件,有些同类域名也可写在一个总的配置文件里。

一、每个域名一个文件的写法

首先打开nginx域名配置文件存放目录:/usr/local/nginx/conf/servers,如要绑定域名www.itblood.com则在此目录建一个文件:www.itblood.com.conf然后在此文件中写规则,如:

server{

listen80;

server_namewww.itblood.com;#绑定域名

indexindex.htmindex.htmlindex.php;#默认文件

root/home/www/itblood.com;#网站根目录

includelocation.conf;#调用其他规则,也可去除

}

然后重起nginx服务器,域名就绑定成功了nginx服务器重起命令:/etc/init.d/nginxrestart

二、一个文件多个域名的写法

一个文件添加多个域名的规则也是一样,只要把上面单个域名重复写下来就ok了,如:

server{

listen80;

server_namewww.itblood.com;#绑定域名

indexindex.htmindex.htmlindex.php;#默认文件

root/home/www/itblood.com;#网站根目录

includelocation.conf;#调用其他规则,也可去除

}

server{

listen80;

server_namemsn.itblood.com;#绑定域名

indexindex.htmindex.htmlindex.php;#默认文件

root/home/www/msn.itblood.com;#网站根目录

includelocation.conf;#调用其他规则,也可去除

}

三、不带www的域名加301跳转

如果不带www的域名要加301跳转,那也是和绑定域名一样,先绑定不带www的域名,只是不用写网站目录,而是进行301跳转,如:

server

{

listen80;

server_nameitblood.com;

rewrite^/(.*)http://www.itblood.com/$1permanent;

}

四、添加404网页

添加404网页,都可又直接在里面添加,如:

server{

listen80;

server_namewww.itblood.com;#绑定域名

indexindex.htmindex.htmlindex.php;#默认文件

root/home/www/itblood.com;#网站根目录

includelocation.conf;#调用其他规则,也可去除

error_page404/404.html;

}

四种规则方法,就可以自己独立解决nginx多域名配置问题了。

配置多域名

方法一:多个的.conf方法(优点是灵活,缺点就是站点比较多配置起来麻烦)

这里以配置2个站点(2个域名)为例,n个站点可以相应增加调整,假设:

ip地址:192.168.1.100

域名1example1.com放在/www/example1

域名2example2.com放在/www/example2

配置nginx虚拟主机的基本思路和步骤如下:

把2个站点example1.com,example2.com放到nginx可以访问的目录/www/

给每个站点分别创建一个nginx配置文件example1.com.conf,example2.com.conf,并把配置文件放到/usr/local/nginx/vhosts/

然后在/usr/local/nginx/nginx.conf里面加一句包括进步2创建的配置文件全部包含进来(用*号)

重启nginx

1,打开/usr/local/nginx/nginix.conf文件,在相应位置加入包括把以上2个文件包含进来

用户wwwwww;

worker_processes1;

#主服务器错误日志

error_log/usr/local/nginx/log/nginx/error.log;

pid/usr/local/nginx/nginx.pid;

事件{

worker_connections51200;

}

#主服务器配置

http{

包括mime.types;

default_typeapplication/octet-stream;

log_formatmain’$remote_addr–$remote_user[$time_local]$request’

‘“$status”$body_bytes_sent“$http_referer”’

‘“$http_user_agent”“$http_x_forwarded_for”’;

发送文件;

#tcp_nopushon;

#keepalive_timeout0;

keepalive_timeout65;

gzip上

服务器{

听80

服务器名称_;

access_log/usr/local/nginx/log/nginx/access.logmain;

server_name_in_redirect关闭

位置/{

root/usr/share/nginx/html;

indexindex.html;

}

}

#包含所有的虚拟主机的配置文件

包括/usr/local/nginx/vhosts/*;

}

2,在/usr/local/nginx下创建vhosts目录

mkdir/usr/local/nginx/vhosts

3,在/usr/local/nginx/vhosts/里创建一个名字为example1.com.conf的文件,把以下内容拷进去

服务器{

听80

server_nameexample1.comwww。example1.com;

access_log/www/access_example1.logmain;

位置/{

root/www/example1.com;

indexindex.phpindex.htmlindex.htm;

}

error_page500502503504/50x.html;

location=/50x.html{

root/usr/share/nginx/html;

}

#将php脚本传递给fastcgi服务器,侦听127.0.0.1:9000

位置〜.php${

fastcgi_pass127.0.0.1:9000;

fastcgi_indexindex.php;

fastcgi_paramscript_filename/www/example1.com/$fastcgi_script_name;

包括fastcgi_params;

}

位置〜/.ht{

拒绝所有

}

}

4,在/usr/local/nginx/vhosts/里创建一个名字为example2.com.conf的文件,把以下内容拷进去

服务器{

听80

server_nameexample2.comwww。example2.com;

access_log/www/access_example1.logmain;

位置/{

root/www/example2.com;

indexindex.phpindex.htmlindex.htm;

}

error_page500502503504/50x.html;

location=/50x.html{

root/usr/share/nginx/html;

}

#将php脚本传递给fastcgi服务器,侦听127.0.0.1:9000

位置〜.php${

fastcgi_pass127.0.0.1:9000;

fastcgi_indexindex.php;

fastcgi_paramscript_filename/www/example2.com/$fastcgi_script_name;

包括fastcgi_params;

}

位置〜/.ht{

拒绝所有

}

}

5,重启nginx

/etc/init.d/nginx重启

方法二:

动态目录方法(优点是方便,每个域名对应一个文件夹,缺点是不灵活)

这个简单的方法比起为每一个域名建立一个vhost.conf配置文件来讲,只需要在现有的配置文件中增加如下内容:

根据需求改变这个端口

听80;#could也可以是1.2.3.4:80也可以是1.2.3.4:80的形式

#多个主机名由空格分隔。更换这些。

#多个主机名可以用空格隔开,当然这个信息也是需要按照你的需求而改变的

。server_namestar.yourdomain.com*.yourdomain.comhttp://www.*.yourdomain.com/;

#alternately:_*

#或者可以使用:_*(具体内容参见本维基其他页面)

root/path/to/webroot/$host;

error_page404http://yourdomain.com/errors/404.html;

access_loglogs/star.yourdomain.com.access.log;

location/{

root/path/to/webroot/$host/;

indexindex.php;

}

#直接提供静态文件

#直接支持静态文件(从配置上看不是直接支持啊)

位置〜*^。+。(jpg|jpeg|gif|css|png|js|ico|html)${

access_logoff;

到期30d;

}

位置〜.php${

#一定要使用不同的服务器为fcgi进程,如果你需要

#如果需要,你可以为不同的fcgi进程设置不同的服务信息

fastcgi_pass127.0.0.1:yourfcgiporthere;

fastcgi_indexindex.php;

fastcgi_paramscript_filename/path/to/webroot/$host/$fastcgi_script_name;

fastcgi_paramquery_string$query_string;

fastcgi_paramrequest_method$request_method;

fastcgi_paramcontent_type$content_type;

fastcgi_paramcontent_length$content_length;

fastcgi_intercept_errorson;

}

位置〜/.ht{

denyall;

}

最后附另外一个二级域名匹配的方法

绑定域名

server_name*.abcd.com;

获取

主机名if($host〜*(。*)。(。*)。(。*))

{

set$domain$1;

}

定义目录

roothtml/abc/$domain/;

location/

{

roothtml/abcd/$domain;

indexindex.htmlindex.php;

相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>
推荐商标

{{ v.name }}

{{ v.cls }}类

立即购买 联系客服