nginx部署多个前端项目

这篇具有很好参考价值的文章主要介绍了nginx部署多个前端项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前提:nginx已在服务器上安装完成

假如有2个项目(一个company,一个test),需要通过ip或者域名来访问,我们通过http://www.test.com来举例

首先把2个静态资源项目或者打包好的项目放到Nginx中

1、nginx安装目录及项目目录

nginx部署多个前端项目

在nginx的html里面 创建两个文件夹,一个services放服务端代码,一个web放前端代码

将前端静态页面或打包好的项目company和test项目放到html/web下面

2、开始nginx配置

进到nginx/conf目录,编辑nginx.conf文件 vim nginx.conf

nginx部署多个前端项目

nginx默认的根目录访问的是html下的index.html页面,默认端口80,访问http://www.test.com 即可看到下面文件

nginx部署多个前端项目

3、nginx下的配置文件(/nginx/conf/nginx.conf)里的server节点配置

nginx部署多个前端项目

server相关释义:

server {
  #监听的端口,80端口是默认端口,在访问时,就无需输入端口号,其他的都需要输入端口号,比如这里访问地址就是127.0.0.1,而若是8080端口,则是127.0.0.1:8080
  listen       80;
  #此处localhost可改为要访问的域名或者ip地址,若有多个用空格隔开。例如 server_name www.baidu.com baidu.com test.baidu.com
  server_name  localhost;
  #编码
  charset utf-8;

  #access_log  logs/host.access.log  main;

  location / {
      #nginx下HTML文件夹,访问上述域名时会检索此文件夹下的文件进行访问
      root   html/web/company;
      #输入网址(server_name:port)后,默认的访问页面
      index  index.html index.htm;
  }
}

listen:指定访问端口,默认80,指定9001,9002之后,我们再次访问

80端口: http://www.test.com

9001、9002端口访问:http://www.test.com:9001    http://www.test.com:9002

指向的都是nginx/html页面下的index.html页面

以上location的配置就可以通过相关路由来访问啦,访问到的路径都是nginx/html/web下的打包之后的项目路径

http://www.test.com:9001/docs     http://www.test.com:9002/docs

http://www.test.com:9001/login     http://www.test.com:9002/login

http://www.test.com:9001/office     http://www.test.com:9002/office

http://www.test.com:9001/company    http://www.test.com:9002/company

3.1 配置改完后测试配置是否正确(找到nginx/sbin文件夹打开,看到nginx文件后再命令行输入nginx -t检测)

3.2 配置正确后,重启nginx(./nginx -s reload)

3.3 若访问的是域名还需去进行域名解析,网站配置域名指向ip。检测是否成功:ping一下域名,若结果为自己指向的ip则解析成功

3.4 测试访问即可

4、 介绍location配置中root和alias的区别

/office 和 /company 分别使用root和alias来配置

4.1使用root配置

nginx部署多个前端项目

浏览器地址栏输入 http://www.test.com:9001/company 或者http://www.test.com:9001/officiaNetwork均可访问

4.2使用alias配置

nginx部署多个前端项目

浏览器地址栏输入 http://www.test.com:9001/office  或者  http://www.test.com:9001/company

 http://www.test.com:9001/office/index.html  或者  http://www.test.com:9001/company/index.html 均可访问

4.3 root 和 alias 的区别

首先确定 root和alias都可以定义在location模块中,都是用来指定请求资源的真实路径

使用 root 时, 服务器里真实的资源路径是 root 的路径拼接上 location 指定的路径

比如请求 http://www.test.com:9001/company/, 真实的资源路径就是

html/web/company/index.html

使用alias顾名思义是代指 location 的别名, 不论location 是什么, 资源的真实路径都是alias所指定的,所以location是匹配浏览器输入的地址, 真实访问的路径就是alias 指定的路径

其它区别

1. alias 只能配置在location 中, 而root 可以配置在 server, http 和 location 中

2. alias 后面必须要以 "/" 结尾, 否则会查找不到文件, 报404错误; 而 root 对 "/" 可有可无

5、配置node项目绑定域名

server {
    listen 80; # 端口
    server_name test.com; # 域名
    location / {
        proxy_pass http://0.0.0.0:3000;
        proxy_read_timeout 18000; # 设置超时
    }
}

6、HTTPS(SSL)配置

server {
    listen       443 ssl; # 端口
    server_name  test.com;  # 域名

    ssl_certificate     /path/xxx.pem # 证书路径 pem or crt;
    ssl_certificate_key  /path/xxx.key; # 私钥

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        # 这里可以配置静态服务器 or 代理
    }
}
# http 自动跳转到 https
server{
    listen 80;
    server_name test.com;
    rewrite ^/(.*)$ https://test.com:443/$1 permanent;
}

其他:

1、Vue访问后刷新空白的问题

可能是由于VurRouter开启了HTML5 History 模式具体可查看VurRouter后端配置例子

需要在配置中添加一行 try_files $uri $uri/ /index.html;

例:

server {
    listen 80; # 端口 需要服务器开放端口
    # 域名绑定需要将域名解析A记录到改服务器ip
    server_name test.com; # 你的域名 如果需要ip访问请注释该行并改变端口

    location / { # 监听的路径
        root /www; # /www 就是刚刚创建的目录
        index index.html index.htm; # 默认入口
        try_files $uri $uri/ /index.html;
    }
}

2、如果80端口被占用了,或者已经有tomcat在跑80端口了,只需要停用tomcat,kill掉其他80端口即可

3、如果你发现修改了以后不起作用的话,可能是之前的nginx服务还没关闭

ps aux | grep nginx

kill -9 pid 关闭nginx服务

4、跨域请求

我们在设置nginx.conf的时候,有一个配置是

location /api/ {

        proxy_pass http://localhost:8000;

        proxy_set_header Host &host;

}

意思是后台开启服务的端口为8000,当我访问 server_name:8086/api/的时候就会流到后台开启的服务中。所以在前端页面请求后台的时候域名和端口要为 server_name:8086/api/

例:下图为前端发起请求的路径

nginx部署多个前端项目

完结,撒花~文章来源地址https://www.toymoban.com/news/detail-427870.html

到了这里,关于nginx部署多个前端项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • nginx支持一个端口访问多个前端项目(http以及https)

        最近做项目结构优化,前端项目都是部署在nginx上,想实现同一个端口可以访问多个前端项目.这样可以提高服务器的端口复用率,降低项目部署以及维护成本.根据平常的需求,用两台nginx服务器分别支持http、https同一端口访问不同项目。下面将配置方式以及相关注意事项做简

    2024年02月03日
    浏览(44)
  • 服务器上一个域名对应多个前端项目的nginx转发配置

    场景: 当有两个前端项目A,B的时候,项目A(对应端口8000)和项目B(对应端口8001)分别部署在服务器的不同位置,通过服务器ip+端口都能正常访问单独的项目A和项目B;现在要求两个项目共用一个域名~~也就是说访问http://10.111.182.xxx:8000的时候默认访问项目A的资源,访问htt

    2024年02月05日
    浏览(36)
  • Nginx 同一端口下部署多个 Vue3 项目

    前端多项目部署到 Nginx 的同一监听端口下的解决方案,项目由一个主项目和多个子项目组成,主项目和子项目都是单独打包。 主子项目之间是使用的腾讯开源的无界(WebComponent 容器 + iframe 沙箱)前端框架,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用

    2024年02月07日
    浏览(31)
  • docker 部署多个前端vue项目

    一、docker 部署前端项目方案 1. 方案1 一个docker容器对应一个前端项目 使用Dockerfile构建镜像,而镜像内部使用nginx,最后把前端构建好的静态文件放到nginxhtml目录下面就可 多个前端项目依次创建多个docker容器即可 2. 方案2 使用一个docker容器部署多个前端项目 在构建之前规划好

    2023年04月09日
    浏览(47)
  • Nginx同一端口部署多个前后端分离的vue项目

    要用nginx容器部署多个前端项目可以采用监听端口,和基于location配置两种方法, 我的nginx是使用docker部署的,启动的时候没有开多余的端口,所以采用location配置 一个server下根据根路径不同分别代理访问不同项目。 下面操练起来,问:把大象放冰箱?总共需要几步:三步!

    2024年02月02日
    浏览(30)
  • Nginx分端口部署两个或多个项目(包含反向代理配置)

    Author:think 一、部署Nginx 若读者没有部署安装Nginx,则可以参考下面这篇文章进行安装。 CentOS 7非编译安装Nginx_think_mzs的博客-CSDN博客 二、分析Nginx配置文件 通过上面的方法安装的Nginx,其配置文件在 /etc/nginx/ 目录下,如下图所示。 其中 nginx.conf 为Nginx的主要配置文件,在 co

    2024年02月05日
    浏览(36)
  • 阿里云CentOS8系统上Nginx部署多个Vue项目(多端口监听)

    阿里云CentOS8系统上安装Nginx服务器----Vue项目部署(一) 阿里云CentOS8系统上部署前后端分离项目----Vue项目部署(二) 编译工具:webstorm 终端中输入:npm run build 打包成功,文件都生成在项目中dist下 将打包好的Vue项目的dist文件夹中的文件全部上传到服务器上。 路径位于上一步查到

    2024年02月06日
    浏览(48)
  • nginx: 部署前端项目的详细步骤(vue项目build打包+nginx部署)

    目录 第一章 前言 第二章 准备工作 2.1 项目打包理解 2.1.1 打包命令 2.1.2 理解npm run serve/dev 和 npm run build命令 2.2 nginx参数配置理解 2.2.1 nginx常用基本命令 2.2.2 默认配置 2.2.3 搭建不同网站的站点 2.2.4 禁止访问的目录以及一键申请SSL证书验证目录相关设置 2.2.5 根据文件类型设置

    2024年02月04日
    浏览(43)
  • 使用nginx部署前端项目

    docker pull nginx docker images docker run --name nginx -p 8080:80 -d nginx:latest docker exec -it nginx /bin/bash mdkir /opt/nginx/conf mkdir /opt/nginx/html mkdir /opt/nginx/log docker rm -f nginx 说明: –name: 启动容器的名字 -d:后台运行 -p: 将容器的 端口映射到主机的端口 -v:挂载配置文件 在浏览器访问主机ip nginx安装

    2024年02月09日
    浏览(41)
  • nginx部署前端项目

    这里简单记录一下自己部署前端项目的过程。 参考: Nginx安装与基本配置 修改nginx.conf,配置前端项目访问路径。 测试nginx是正常 重启nginx ./sbin/nginx -s reload 如果没有启动过Nginx,直接启动Nginx即可:./sbin/nginx http://192.16.6.118:57777 即可打开前端页面 简单的利用nginx部署前端项目

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包