在介绍放下之前先了解Nginx的配置文件 nginx.conf ,默认的配置文件如下(只关注未被注释的server块即可):
...
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
...
-
80是Nginx的默认监听端口
-
server_name可以写公网ip,也可以写域名,当访问这个server_name时,就会进入Linux根目录
location /下的内容。
例如,访问 server_name,真实的访问路径就是server_name:80,而在linux中的绝对路径就是 /html/index.html 。
根目录 / 只能有一个,但是可以自己添加多个普通目录,比如我再添加一个 location。
location /demo1 {
root /data/MyProject/html;
index index.html;
}
这样当在浏览器中输入 server_name/demo1,就会被这个location匹配,跳转到物理内存 /data/MyProject/html/demo1/index.html 寻找静态资源。拼接的方法是 root+location+index 。
注意:更新完nginx.conf后一定要重新加载配置并重启nginx服务后才能生效!
回归正题
总结来说,如果想在浏览器输入 server_name/demo1 来访问静态项目,总共需要三步。
-
保证静态项目的入口文件是
index.html,把项目文件夹命名为demo1,然后将之放置在/data/MyProject/html/文件夹下。 -
添加上述
location到Nginx配置文件。 -
重新加载配置并重启Nginx。
sudo systemctl reload nginx # 重新加载配置,一般是在修改过 nginx 配置文件时使用。 sudo systemctl restart nginx # 重启 nginx 服务
由上可知,同一 server_name 下的多哥项目,可以用多个 location块 区分。
同理,如果想用想在同一台服务器上用多个域名访问多个项目,就可以用多个 server块 来实现。