在nginx配置中有两个位置的麻烦

时间:2017-11-13 13:13:43

标签: nginx

我有2个链接:myserver.org/support/var/www/myserver.org 我需要先关注/var/www/support,然后再关注server { listen 80 default_server; server_name groupmanager.org; charset utf-8; root /var/www/groupmanager.org; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } access_log /var/log/nginx/groupmanager.org_access.log; error_log /var/log/nginx/groupmanager.org_error.log; include /etc/nginx/templates/php-fpm.conf; } server { listen 80; server_name www.groupmanager.org; rewrite ^(.*) http://groupmanager.org$1 permanent; } 我的配置现在: 第一档&链路

server {
  listen 80;

  server_name 163.172.88.31/support;
  charset utf-8;

  root /var/www/support;
  index index.php;

  access_log /var/log/nginx/support_access.log;
  error_log /var/log/nginx/support_error.log;

  include /etc/nginx/templates/php-fpm.conf;
}

server {

  listen 80;

  server_name www.163.172.88.31/support;
  rewrite ^(.*) http://163.172.88.31/support$1 permanent;
}

第二档&链接:

location ~ \.php$ {
   try_files $uri =404;
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
   fastcgi_index index.php;
   include fastcgi_params;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

location ~ /\.ht {
   deny all;
}

location ~* \.(gif|jpeg|jpg|txt|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|zip|bin|exe|dll|deb|cur)$ {
  expires 168h;
}

location ~* \.(css|js)$ {
  expires 180m;
}

PHP-fpm.conf

createHTTPClient

第一个链接工作正常,第二个 - 没有。我看'403 Forbidden' 什么不严谨? 文件夹的权限是相同的,我认为是正确的。

3 个答案:

答案 0 :(得分:1)

对于/var/www/myserver.org和/ var / www / support,您必须创建两个独立的nginx配置文件,其中包含两个不同的根和服务器名称。

此外,如果您只想显示两个链接,您可以为一个链接设置nginx,并仅使用内部链接链接第二个链接(如果它们位于同一页面中)

答案 1 :(得分:0)

试试这样:

    include /etc/nginx/default.d/*.conf;
    server {

        listen 80 default_server;

        server_name myserver.org;
        charset utf-8;

        root /var/www/myserver.org;
        index index.php;

        include /etc/nginx/default.d/*.conf;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

/etc/nginx/default.d/目录中,创建一个.config文件 test.config

location myserver.org {
proxy_pass /myserver.org;
}
location myserver.org/support {
proxy_pass /var/www/support;
}

答案 2 :(得分:0)

这有效:

groupmanager.org.conf

server {
    listen 80 default_server;

    server_name groupmanager.org;
    charset utf-8;

    root /var/www/groupmanager.org;
    index index.php;

    location /support/ {
        alias /var/www/support/;
        index index.php;

        access_log /var/log/nginx/support_access.log;
        error_log /var/log/nginx/support_error.log;

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  /var/www/$fastcgi_script_name;
        }
    }

    access_log /var/log/nginx/groupmanager.org_access.log;
    error_log /var/log/nginx/groupmanager.org_error.log;

    include /etc/nginx/templates/php-fpm.conf;
}


server {
  listen 80;

  server_name www.groupmanager.org;
  rewrite ^(.*) http://groupmanager.org$1 permanent;
}

PHP-fpm.conf

location ~ \.php$ {
   try_files $uri =404;
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
   fastcgi_index index.php;
   include fastcgi_params;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

location ~ /\.ht {
   deny all;
}

location ~* \.(gif|jpeg|jpg|txt|png|tif|tiff|ico|jng|bmp|doc|pdf|rtf|xls|ppt|rar|rpm|swf|zip|bin|exe|dll|deb|cur)$ {
  expires 168h;
}

location ~* \.(css|js)$ {
  expires 180m;
}