使用Nginx在远程服务器部署静态html资源

347 阅读1分钟

在介绍放下之前先了解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块 来实现。