【问题标题】:Yii2 + Nginx(proxy) + Apache(back)Yii2 + Nginx(代理)+ Apache(后台)
【发布时间】:2019-01-29 13:37:03
【问题描述】:

我正在学习 NGINX,我需要使用 .htaccess 设置一个带有 NGINX 的前端网络服务器和一个带有 Apache 的后端网络服务器

这是/etc/nginx/sites-available/my_test5.loc的内容

server {
  charset utf-8;
  client_max_body_size 128M;

  listen 80;

  server_name my_test5.loc;
  root        /var/www/my_test5.loc/web;
  #root /var/www/my_test5.loc;
  index       index.php;


  location / {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  # deny accessing php files for the /assets directory
  location ~ ^/assets/.*\.php$ {
    deny all;
  }

  location ~ \.php$ {    
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
  }

  location ~* /\. {
    #  deny all;
    allow all;
  }
}

这是/etc/apache2/sites-available/my_test5.loc.conf的内容

<VirtualHost *:8080>
  <Directory /var/www/my_test5.loc/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All 
    Order allow,deny
    allow from all 
  </Directory>
  ServerAdmin admin@my_test5.loc
  ServerName my_test5.loc
  ServerAlias www.my_test5.loc
  DocumentRoot /var/www/my_test5.loc/web/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

现在我要做的只是主页。例如,如果我尝试导航到站点/关于我不能。我做错了什么以及如何使用这两个网络服务器?

【问题讨论】:

    标签: apache .htaccess nginx proxy


    【解决方案1】:

    我认为您的设置仅正确指向 index.php,因为您的 location / {} 指令,请尝试编辑您的 Apache 访问权限以更宽容地更改此块以通过它并将特定块添加到其他类型的文件,比如资产。

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:8080;
    }
    
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|ttc|otf|eot|woff|woff2)$ {
      try_files $uri $uri/
    }
    

    这样,NGINX 为您的静态文件提供服务,而 Apache 为其他所有文件提供服务。

    【讨论】:

    • 谢谢,但它s doesent 帮助。正如您所说,我更改了我的服务器代码部分,但仍然只能使用站点/索引进行操作。也许apache conf有问题?
    • 发出失败的请求并将 NGINX 和 Apache 日志从该请求复制/粘贴到您的问题中,以便可以调试。
    • 对不起 ErvalhouS 先生。我的问题已经完成,我在更高的评论中写下了它。我不知道如何设置最终答案(
    • 您的配置看起来不错。我无法仅根据问题上发布的配置来调试您的问题。您需要披露更多信息,以便我更清楚您的问题。这样做的方法是编辑您的问题,并将您的日志输出附加到其中。
    • ErvalhouS 我的问题已经完成。我只是不知道如何结束问题并给您的评论状态“最终版本”或类似的东西,谢谢))
    【解决方案2】:

    用于 Nginx 工作

    1. 为 apache 使用 .htaccess
    2. siteName.conf apache 必须是
    3. siteName conf 必须在 nginx sites-available 和 sites-enable 中
    4. 确保您将请求从 80 端口发送到 8080(在我的情况下)并且 Apache 正在监听它

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2021-07-06
      • 2015-10-20
      • 2011-01-19
      • 1970-01-01
      相关资源
      最近更新 更多