NGINX:同一域名上的不同站点

NGINX:同一域名上的不同站点

我正在开发几个 php 项目,我想将这些项目部署到同一个 NGINX 网络服务器(同名)上,但使用不同的别名。例如:http://localhost/project1, http://localhost/project2。我以为在 sites-avaible 和 enabled 中添加多个配置就足够了,但这样做不行。如果可能的话,我想将配置保存在单独的文件中。这些配置单独工作正常。

这是我的 configs.php 信息页面:

server {
        listen 80;
        root /var/www/html/;

        index index.php index.html index.htm index.nginx-debian.html;

        server_name localhost;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
            access_log off;
            log_not_found off;
            add_header Pragma public;
            add_header Cache-Control "public";
            expires 14d;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

站点1:

server {
        listen 80;
        root /var/www/html/site1/app/webroot;

        index index.php index.html index.htm index.nginx-debian.html;

        server_name localhost/site1;

        location /crade_web {
                try_files $uri $uri/ /index.php?$args;
        }
        location ~* .(ico|jpg|webp|jpeg|gif|css|png|js|ico|bmp|zip|woff)$ {
            access_log off;
            log_not_found off;
            add_header Pragma public;
            add_header Cache-Control "public";
            expires 14d;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

答案1

server_name是主机名,所以不能localhost/site1

如果您将所有项目放在单独的子文件夹中,则无需创建不同的服务器。即从 nginx 的角度来看,您只有一个站点。

如果你想创建不同的网站,你可能需要给出不同的服务器名称,例如

  • myproject1.local
  • myproject2.local
  • myotherproject.local

请注意,您必须编辑hosts文件以将所有这些名称解析为 127.0.0.1。

相关内容