通过Nginx将2个域链接到1个Laravel项目
我正在尝试将另一个域链接到我现有的项目 我使用的是Laravel5.1,我知道我们在.env中只有一个通过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 {
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请求期间未启动)。