通过Nginx将2个域链接到1个Laravel项目

通过Nginx将2个域链接到1个Laravel项目,laravel,nginx,virtualhost,digital-ocean,Laravel,Nginx,Virtualhost,Digital Ocean,我正在尝试将另一个域链接到我现有的项目 我使用的是Laravel5.1,我知道我们在.env中只有一个APP\u URL 有没有办法通过Nginx级别执行 cat/etc/nginx/sites available/default server {

我正在尝试将另一个域链接到我现有的项目

我使用的是Laravel5.1,我知道我们在.env中只有一个
APP\u URL

有没有办法通过Nginx级别执行

cat/etc/nginx/sites available/default

server {                                                                                                                                                                           
    listen 80 default_server;                                                                                                                                                      
    server_name default;                                                                                                                                                           
    root /home/forge/bheng/public;                                                                                           
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                                                                                                                           

    index index.html index.htm index.php;                                                                                                                                          

    charset utf-8;                                                                                                                                                                 

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


    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }
    access_log off;
    error_log  /var/log/nginx/default-error.log error;

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

如何进行这样的配置?

为两个域指定相同的webroot。在Laravel代码中,您可以使用域组或
url('/')
来检查您所在的域

您的配置可能如下所示:

server {
     listen 80, 443;
     listen [::]:80, [::]:443;
     servername www.domain1.com www.domain2.com;

     root /home/kyo/laravel/public/;

     index index.php;

     location / {
          try_files $uri $uri/ =404;
     }
}

将这两个域作为别名放入服务器名称配置中

server_name domain1.com www.domain1.com domain2.com www.domain2.com ;               

我使用了类似这样的服务器名称别名:

server_name www.app1 www.app2;
然后让DNS指向同一主机。如果您在自己的linux设备中工作,请更改
/etc/hosts
文件:

sudo vim /etc/hosts
并添加新主机:

127.0.0.1 www.app1
127.0.0.1 www.app2

就这么做了,然后重新启动应该可以工作的服务器-对吗?这应该适用于任何项目堆栈?不一定要对其进行LAVEL吗?.env文件中的域配置主要用于CLI命令(php artisan)。你也可以按域定义路由。我不确定你在说什么,我很难想象。再加一点说明来支持你的观点?我知道我们可以在
cat/etc/nginx/sites available/default
中做第一个,但是我们在哪里配置你答案的第二部分?Linux中的哪个文件
/etc/hosts
?值得注意的是,
APP\u URL
环境变量仅在未提供
Host:
请求头的情况下由Laravel使用,例如从控制台命令或使用
route()
asset()
之类的排队作业(在HTTP请求期间未启动)。