我正在尝试创建一个 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(使用前将#替换为@)