使用容器启动 nginx 挂载并进行配置

  1. 首先使用 npm run build 打包前端应用,生成 dist 文件夹,其中 index.html 作为前端的入口文件。
  2. 使用 docker 启动 nginx,做两件事
    1. 配置 /etc/nginx/nginx.conf
    events { } 
    http {
        server {
            listen 80;
            server_name selfharbor.top;
    
            location / {
                root /usr/share/nginx/html/dist;
                index index.html;
            }
        }
    }
    
    
    1. 将dist文件夹上传到云服务器上去。
  3. 挂载:
docker run -d --name my-nginx \
-p 80:80 \
-v /usr/share/nginx/html/dist:/usr/share/nginx/html/dist \
-v /root/nginx-config/nginx.conf:/etc/nginx/nginx.conf \
nginx
  1. 启动 nginx 即可。

server_name 指令用于定义当前服务器块(server block)接收哪些主机名或域名的请求。这允许Nginx基于请求的 Host HTTP头部来确定应该使用哪个服务器配置。


关于 root 和 index

root 指令用于指定服务器块中请求的根目录。当Nginx收到一个请求时,它会在这个根目录下查找文件。root 指令定义了Nginx查找文件的起始点。

在您的例子中,root /usr/share/nginx/html/dist; 表示对于当前服务器块的请求,Nginx会在 /usr/share/nginx/html/dist 目录下查找文件。

index 指令用于定义当请求一个目录时,默认应该返回哪个文件。通常,当您访问一个网站的根目录(比如 http://example.com/),您实际上是在请求这个目录下的默认页面。

在您的例子中,index index.html; 表示当请求目录(如 /)时,默认会返回 index.html 文件。所以,如果有人访问 http://yourdomain.com/,Nginx会尝试在 /usr/share/nginx/html/dist 目录下查找并返回 index.html 文件。

location / {
    root /usr/share/nginx/html/dist;
    index index.html;
}

这意味着:

对于根URL(/)的请求,Nginx会在 /usr/share/nginx/html/dist 目录下查找文件。
如果请求的是目录(比如只是域名 http://selfharbor.top/ 而没有指定文件),Nginx会尝试返回这个目录下的 index.html 文件。

你可能感兴趣的:(云原生,nginx,运维)