用于在同一个域中运行两个 Yii2 php 实例的 Nginx 配置
Posted
技术标签:
【中文标题】用于在同一个域中运行两个 Yii2 php 实例的 Nginx 配置【英文标题】:Nginx configuration for running two Yii2 php instances frm same domain 【发布时间】:2019-12-04 04:16:46 【问题描述】: root /var/www/serve/il/gcc/public;
etag off;
add_header Pragma "public";
add_header Cache-Control "public";
brotli on;
brotli_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/octet-stream;
gzip on;
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/octet-stream;
expires max;
location ^~ /india
alias /var/www/serve/il/india/public;
index index.php;
try_files $uri $uri/ /index.php?$args;
location /
root /var/www/serve/il/gcc/public;
index index.php;
try_files $uri $uri/ /index.php?$args;
include /etc/nginx/php.inc;
有两个不同根的项目。我正在尝试获取 URL 为
https://example.com/en-gc/site/index
和
https://example.com/en-in/site/index
我尝试了各种解决方案,但似乎没有任何效果。
【问题讨论】:
可能重复:***.com/questions/11570321/… 【参考方案1】:两个 PHP 实例是什么意思?你可以简单地有两个不同的文件夹,每个文件夹都有一个 Yii2 项目,并从同一个主机为它们提供服务,但我不认为这就是你的意思。我认为您要问的是您希望每个站点都有一个单独的 PHP 实例,该实例彼此隔离。如果是这种情况,您需要为每个子站点设置一个单独的虚拟主机,可以通过端口或通过域 + 主机文件。确保将每个主机的监听指令设置为 127.0.0.1,以便在主站点之外无法访问它们。然后在主虚拟主机上,在您的位置块内,使用反向代理将请求转发到您之前设置的正确 127.0.0.1 主机。这种配置有很多例子。
见:
https://www.linode.com/docs/web-servers/nginx/use-nginx-reverse-proxy/ https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-web-server-and-reverse-proxy-for-apache-on-one-ubuntu-18-04-server【讨论】:
我在顶部给出了整个 nginx 配置,下面是位置指令。我需要在同一服务器块上使用 yii2 的 2 个文件夹的解决方案以上是关于用于在同一个域中运行两个 Yii2 php 实例的 Nginx 配置的主要内容,如果未能解决你的问题,请参考以下文章
Yii2/PHP:为 InfluxDB 和 MySQL 抽象数据库访问
Yii2 - 在视图的 index.php 中渲染 _search.php 文件