nginx部署单个或多个前端项目

1,028 阅读2分钟

前置条件

假设我们的ip是 198.70.80.19 假设我们的域名是 lioblog.cn 假设项目1是blog,并已打包资源放在 /blog/blog目录下 假设项目2是admin,并已打包资源放在 /blog/admin目录下

1.下载nginx并启动

因为只是比较简单的项目所以没有使用其他的库

yum install nginx
nginx

访问ip或域名是否有nginx页面,有nginx页面后就可以进行nginx相关配置

修改nginx配置

切换到nginx目录

cd /etc/nginx/

只配置blog项目

将nginx.conf文件htpp中的server改成如下配置, 将前端资源放入/blog/blog

server {
        listen       80; #监听的端口号
        server_name  198.70.80.19; #服务器域名或ip地址
        location / {
          root         /blog/blog; #资源文件夹路径
          index index.html;#入口文件
        }
    }

基于location配置两个项目

  • blog访问地址:198.70.80.19
  • admin访问地址:198.70.80.19/admin
http {
    server {
        listen       80; #监听的端口号
        server_name  198.70.80.19; #服务器域名或ip地址
        location / {
          root   /blog/blog; #资源文件夹路径
          index index.html;#入口文件
        }
        location /admin {
          alias    /blog/admin; #不是根路径的项目需要使用alias来指定资源路径并且需要在项目里配置route的baseurl
          index index.html;#入口文件
        }
    }
}
 nginx -t #测试文件是否可用
 nginx -s reload #重启nginx服务

注意不是根路径的项目需要使用alias来指定资源路径并且需要在项目里配置route的baseurl react 配置请参考: blog.csdn.net/mollerlala/…

vue 配置请参考:blog.csdn.net/weixin_3386…

基于二级域名配置两个项目(必须要有域名才可以操作)

  • blog访问地址: blog.lioblog.cn
  • admin访问地址: admin.lioblog.cn

step1 设置解析域名

到阿里云解析设置页面点击添加记录

image.png

写入自己的二级域名和服务器ip(解析需要一定时间可以点击列表处的生效检测查看是否生效)

image.png

step2 进入服务器nginx配置文件

 cd /etc/nginx
 

修改 nginx.conf文件 在http中加入两个server都监听80端口,只有server_name和项目入口有所区别

   server {
        listen       80;
        server_name  blog.lioblog.cn;
        location / {
            root         /blog/blog;
        index index.html;
        }
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
   server {
   listen       80;
   server_name  admin.lioblog.cn;
   location / {
       root         /blog/admin;
    index index.html;
   }
   # Load configuration files for the default server block.
   include /etc/nginx/default.d/*.conf;

   error_page 404 /404.html;
   location = /404.html {
   }

   error_page 500 502 503 504 /50x.html;
   location = /50x.html {
   }
}
 nginx -t #测试文件是否可用
 nginx -s reload #重启nginx服务

总结

基于location配置:

  • 优点:可以无域名配置两个前端项目。
  • 缺点:需要修改项目配置并且路由模式必须是hash

基于二级域名配置:

  • 优点:相当于两个项目配置在不同域名下,完全隔离
  • 缺点:必须有域名并且需要dns解析二级域名