多域名Nginx配置

例如有两个域名,指向同一个服务器IP

www.domain1.com

www.domain2.com

我建立两个目录, 存放网站文件

/var/www/domain1.com/public

/var/www/domain2.com/public

nginx配置文件为:

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

    server_name ~^(www\.)?(.+)$;
    set   $domain  $2;
    root /var/www/$domain/public;
    index index.php index.html index.htm;

    if ($host = domain1.com){
         rewrite ^ http://www.domain1.com permanent;
    }

    if ($host = domain2.com){
         rewrite ^ http://www.domain2.com permanent;
    }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

    location ~* \.(gif|jpg|jpeg|mp4|mp3|wav|ogg|flv)$ {
        expires 30d;
        valid_referers *.domain1.com *.domain2.com ~\.baidu\.com;
        if ($invalid_referer) {
            rewrite ^/ http://domain1.com;
            #return 404;
        }
    }

}

注意:

set   $domain  $2;
root /var/www/$domain/public;

不能直接用
root /var/www/$2/public;

不然
location ~ \.php$

会解析错误

如果在一个server块中为一个站点配置多个二级域名配置如下:
server  {
     listen       80;
     server_name  ~^(.+)?\.domain\.com$;
     index index.html;     # 将domain.com 重定向到 www.domain.com
     if ($host = domain.com){
         rewrite ^ http://www.domain.com permanent;
     }
     root  /data/wwwsite/domain.com/$1/;
}

站点目录结构如下:

/data/wwwsite/domain.com/www/
/data/wwwsite/domain.com/nginx/
时间: 2024-10-19 16:22:00

多域名Nginx配置的相关文章

Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9315560/1901284 0.说明 使用Nginx可以配置基于域名的虚拟主机.基于端口的虚拟主机和基于端口的虚拟主机,比较常用的是基于域名的虚拟主机,这里要做的配置是基于域名的虚拟主机,并且是配置多个基于域名的虚拟主机. 关于Nginx配置文件的说明可以参考官方文档,同时也可以参考老男孩老师的书

nginx配置新域名

测试环境新增域名转发 1.登录到nginx集群内的第一台nginx主机上,测试环境的为10.117.41.123 2.到nginx配置文件目录拷贝域名转发文件 /etc/nginx/conf.d/qa配置文件目录 cp stage-benefit-bm.minicrm.com.conf stage-data-manage.minicrm.com.conf vim stage-data-manage.minicrm.com.conf 按Esc键输入下方命令 :%s  /stage-benefit-

nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)

前提:安装好nginx,如果已经启动nginx,先停止,命令: ./usr/local/nginx/sbin/nginx -s stop 修改nginx配置 vi /usr/local/nginx/conf/nginx.conf 配置好以后的nginx.conf文件内容: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/er

Nginx配置域名转发实例

域名:cps.45wan.com   所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: server {listen 80; server_name cps.45wan.com; root /home/web/cps.45wan.com/htdocs/www; location / { root /home/web/cps.45wan.com/htdocs/www; } locatio

nginx配置域名跳转

nginx 配置主域名 xxx.com, 跳转子域名 www.xxx.com server {listen 80;server_name www.xxx.com; location / { root html/www/public_html; index index.php index.html index.htm; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { r

在阿里云域名https配置(nginx为例)

如题: 在阿里云上注册了域名之后在阿里云域名控制台配置https: 1.在域名控制台选择要配置的域名,并在操作栏点击"解析" 2.在域名解析点击更多下的SSL进入到证书列表页,这里有收费的也有免费的,公司的建议用收费的个人网站免费够我们用了,不过免费的话是免费一年的,第二年到期前再下载一个免费的替换就可以了. 3.在证书列表也配置你要设置https域名,并勾选系统自动添加TXT解析记录 4.申请成功后在解析设置新增解析记录TXT,然后下载证书,会得到两个文件分别是.pem和.key结尾

phpstudy使用nginx配置多站点域名

环境是windows, phpstudy,既可以使用apache,也可以使用nginx. 但是,在使用nginx配置多站点域名时,有一个bug,需修改后才能配置成功. 方法如下: 首先自定义域名到hosts文件,然后使用phpstudy,其他选项菜单 - 站点域名管理 - 添加1个或多个域名,端口都是80 实际上,该配置被phpstudy设置在安装路径的nginx / conf / vhosts.conf 这个文件里. 这样是无法配置成功的. 需把vhosts.conf 这个文件里的 root 

nginx配置虚拟域名后直接输出或下载网页源代码而不是运行网页文件的解决办法

参考链接:http://blog.csdn.net/iefreer/article/details/44293711 遇到这种问题,通常是由于fastcgi_script_name访问脚本路径不正确引起的. 尤其是带有子目录的情况,比如对于Yii框架而言,路径通常是project/web 那么如果在URL中访问 /project/index.php,那么nginx配置中的SCRIPT_NAME会是全路径:project/index.php 如果你配置中的代码如下: fastcgi_param S

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co