用于在同一个域中运行两个 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:在具有两个相同模型实例的表单中进行验证

yii2 随笔依赖注入——yii2的依赖注入

Yii2 - 在视图的 index.php 中渲染 _search.php 文件

关于 yii2 cron运行 console的脚本不运行,可是手动运行成功的原因

高可用高性能yii2.0