同一服务器上多个站点的 nginx 配置

2024-01-25

我正在尝试创建一个 nginx 服务器,可以在同一服务器上托管多个站点。我在 /var/www/ 目录中保留了两个包含 index.html 文件的不同目录。

第一个目录:dir1 包含文件夹结构为:dir1/Folder/app; app 目录包含该网站的index.html。

第二个目录:dir2 包含文件夹结构为:dir2/Folder/app; app 目录包含该网站的index.html。

现在在 /etc/nginx/conf.d 中,创建了 2 个 .conf 文件作为 test.conf 和 dev.conf

测试.conf:

server {
    listen 80 default_server;
    server_name mydomain.net;
    location /dir1/ {
        root /var/www/dir1/PharmacyAdminApp/app;
        index index.html index.htm;
        try_files $uri $uri/ =404;
    }
}

dev.conf

server {
    listen 80 default_server;
    server_name mydomain.net;
    location /dir2/ {
        root /var/www/dir2/PharmacyAdminApp1/app;
        index index.html index.htm;
        try_files $uri $uri/ =404;
    }
}

之后我重新启动 nginx 服务器并在浏览器上访问“mydomain.net:80/dir1”,但我得到 404。任何人都可以让我知道问题是什么吗?


上面的配置应该会引发错误,因为您定义了两个default_server,也没有必要为同一域定义两个服务器块,

这就是你可以实现它的方法,

map $request_uri $rot {
    "~dir1" /var/www/dir1/Folder/app/;
    default /var/www/dir2/Folder/app/;
}
server {
    listen 80 default_server;
    server_name mydomain.net;
    root $rot;
    index index.html;

    location / {
        try_files $uri $uri/  index.html =404;
    }
}

另一种方式可以是,

server {
    listen 80 default_server;
    server_name mydomain.net;

    location /dir2/ {
        root /var/www/dir2/PharmacyAdminApp1/app;
        index index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
    location /dir1/ {
        root /var/www/dir1/PharmacyAdminApp1/app;
        index index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
}

如果仍然抛出任何错误,请打开 error_log,检查正在访问哪些文件,并从那里进行更正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一服务器上多个站点的 nginx 配置 的相关文章

随机推荐