AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 412530
Accepted
Jürgen Paul
Jürgen Paul
Asked: 2012-07-31 06:25:28 +0800 CST2012-07-31 06:25:28 +0800 CST 2012-07-31 06:25:28 +0800 CST

基于子域的映射请求

  • 772

如何映射我不必重​​写 URI 的子域?

server {
    listen       80;
    server_name  cooking.com user.cooking.com admin.cooking.com;
    root   html/cooking/public;

    location / {
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  FEED_ENV  default;
        include        fastcgi_params;
    }
    location ~* \.(ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    }
}

所以基本上当用户访问admin.cooking.com时,它应该请求/index.php/admin/. 我正在考虑使用if,但如果不好。

nginx
  • 1 1 个回答
  • 277 Views

1 个回答

  • Voted
  1. Best Answer
    Fleshgrinder
    2012-08-21T15:42:15+08:002012-08-21T15:42:15+08:00

    为此,您需要单独的服务器块。

    # /etc/nginx/sites-available/php.conf
    
    location @php {
      fastcgi_param FEED_ENV default;
      fastcgi_index index.php;
      fastcgi_pass 127.0.0.1:9000;
    }
    

    ...和您的服务器配置:

    # /etc/nginx/sites-available/server.conf;
    
    listen 80;
    root html/cooking/public;
    index index.html index.htm index.php;
    include fastcgi_params;
    
    location / {
      location ~* \.(ico|css|js|gif|jpe?g|png)$ {
        expires max;
        add_header Pragma public;
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
      }
      try_files $uri $uri/ @php;
    }
    

    ...和您最终的虚拟主机配置:

    # /etc/nginx/sites-available/virtual_hosts.conf
    
    server {
      server_name cooking.com;
      include sites-available/server.conf;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include sites-available/php.conf;
    }
    
    server {
      server_name user.cooking.com;
      include sites-available/server.conf;
      fastcgi_param  SCRIPT_FILENAME  $document_root/index.php/user/$args;
      include sites-available/php.conf;
    }
    
    server {
      server_name admin.cooking.com;
      include sites-available/server.conf;
      fastcgi_param  SCRIPT_FILENAME  $document_root/index.php/admin/$args;
      include sites-available/php.conf;
    }
    

    sites-enabled您只需创建一个指向virtual_hosts.conf!

    因为我不知道您的确切环境(后端及其处理传入 URL 的方式),所以我无法为您提供完美的配置。但这应该是一个很好的起点。

    • 3

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve