首页 > 其他分享 >部署项目遇到的问题汇总

部署项目遇到的问题汇总

时间:2023-04-04 17:23:02浏览次数:52  
标签:index 遇到 部署 xxx 汇总 server nginx html proxy

部署项目遇到的问题汇总

问题一:nginx部署完成后,访问后端的接口返回CORS跨域请求

思考:我部署的前后端都在同一个宿主机上,访问的ip都是相同的,不应出现跨域才对。

解决:当你的nginx有如下配置(该配置通常用于本地开发环境)

server {
    listen       80;
    server_name  xxx.aliyun.com;
    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass   http://127.0.0.1:8080;
     }
}

线上环境下:
你会发现spring boot tomcat server接受到的post请求url的host信息是http://127.0.0.1,但是请求的origin信息是http://xxx.aliyun.com。 此两者不一致,spring boot tomcat server返回403状态码和Invalid CORS request内容。

修复方法1:
nginx里添加配置:proxy_set_header Host $host;

server {
    listen       80;
    server_name  xxx.xxx.xxx.xxx;
    location / {
        root   html;
        index  index.html index.htm;
        proxy_set_header  Host $host;
        proxy_pass  xxx.xxx.xxx.xxx:6666;
     }
}

这时spring boot tomcat server接受到的post请求url的host信息就不是127.0.0.1了

解决来源:
链接:https://www.jianshu.com/p/99b2534c7737
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

问题二:nginx同时部署两个前端项目

需求:项目中有前台的前端和后台管理端的前端两个项目,都需要部署在同一个nginx中,并使用不同的二级域名访问如

front.xxx.com
admin.xxx.com

解决:

①在nginx目录下的ntml目录下建两个文件夹,分别存放两个项目的打包后的文件

②在nginx配置文件中配置两个server,可以使用相同的端口,但是server_name一定要区分开

#user  root;
worker_processes  1;
events {
  worker_connections  1024;
}
http {
  include       mime.types;
  default_type  application/octet-stream;
  sendfile        on;
  keepalive_timeout  65;
  server {
      listen       80;
      charset      utf-8;
      server_name  front.xxx.com; #前台项目
      location / {
          root   /usr/share/nginx/html/dist;#注意当前项目的地址
          try_files $uri $uri/ /dist/index.html;#注意当前项目的地址
          index  index.html index.htm;
          error_page 405 =200  $request_uri;
      }
      location /api {
          proxy_pass http://112.xxx.xx.35:6666;
          proxy_set_header  Host $host;
          proxy_redirect default;
	  	rewrite ^/api/(.*) /$1 break;
      }
  }
  server {
      listen       80;
      charset      utf-8;
      server_name  admin.xxx.com; #后台管理系统
      location / {
          root   /usr/share/nginx/html/static;#注意当前项目的地址
          try_files $uri $uri/ /static/index.html;#注意当前项目的地址
          index  index.html index.htm;
          error_page 405 =200  $request_uri;

          proxy_pass http://112.xxx.xx.35:6666;
          proxy_set_header  Host $host;
          proxy_redirect default;
	  	rewrite ^/api/(.*) /$1 break;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   html;
      }
  }
}

问题三:nginx访问ftp服务器下的静态文件

需求:使用FTP文件服务器作为静态页面的存放位置,但是nginx要怎么才能访问到里面的静态html文件呢?

解决:

①docker-compose.yml文件中的nginx挂载

这里的/home/ftp/root是ftp文件服务器在宿主机中的根目录

这里的/var/local是nginx服务的虚拟容器中的存放静态页面的地址

②nginx配置文件中配置/ftp路径的映射地址

location /ftp/ {
      	alias /var/local/root/webpages/;#ftp服务器中的文件映射nginx中的位置【前提是要在nginx的挂载那里要挂载该目录】   
      	autoindex on;
}

③修改项目中访问静态页面的地址:ip+路径映射+文件的相对根目录的路径

export const STATIC_PAGE_BASE_URL = "http://112.124.55.35/ftp/staticPages/"

路径拼接逻辑:

大功告成??

no!虽然不是404了,但是变成了403!这是因为权限不够,需要在nginx.cnf文件顶部加一行

完成!

标签:index,遇到,部署,xxx,汇总,server,nginx,html,proxy
From: https://www.cnblogs.com/wufaxiang/p/17287099.html

相关文章

  • Docker 部署单机 Redis + exporter
    目录资源清单一、Docker安装1.使用国内yum源2.卸载旧版本的docker3.安装Docker20.10版本4.设置镜像加速5.启动docker二、Docker-compose安装1.Docker-compose安装2.查看docker-compose版本三、部署服务1.docker-compose.yaml资源清单2.创建目录结构3./etc/r......
  • Docker 部署单机 ES + exporter
    目录资源清单一、Docker安装1.使用国内yum源2.卸载旧版本的docker3.安装Docker20.10版本4.设置镜像加速5.启动docker二、Docker-compose安装1.Docker-compose安装2.查看docker-compose版本三、部署服务1.docker-compose.yaml资源清单2.elasticsearch.yml外......
  • 运维高端命令汇总(持续更新中)
    1.aureport \\登陆系统信息审计说明:https://deepinout.com/linux-cmd/linux-audit-system-related-cmd/linux-cmd-aureport.html 2.rpm-Va\\校验所有的RPM软件包,查找丢失的文件说明:S表示文件长度发生了变化M表示文件的访问权限或文件类型发生了变化5表示MD5......
  • KubeSphere——使用deployment文件部署实战(3)
    摘要如果没有KubeSphere可视化界面,同样也能保持部署的能力。因此使用deployment文件来部署的相关应用。Deployment对象,顾名思义,是用于部署应用的对象。它使Kubernetes中最常用的一个对象,它为ReplicaSet和Pod的创建提供了一种声明式的定义方法,从而无需像前两篇文章中那样手动创建Rep......
  • A7--Spark部署
    一、版本信息  JDK1.8spark3.2.1二、安装部署1)上传解压缩文件tar-zxvfspark-3.2.1-bin-hadoop3.2.tgz 2)配置环境变量vim/etc/profile #SparkexportSPARK_HOME=/opt/spark-3.2.1exportPATH=$SPARK_HOME/b......
  • ELK+kafka集群部署
    前言业务层可以直接写入到kafka队列中,不用担心elasticsearch的写入效率问题。消息系统主要功能1、解耦允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束2、冗余消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消......
  • Element-ui使用过程中遇到的问题
    1.修改表单中的数据,列表行数据对应的同步修改原因:this.model=record;行为属于浅拷贝,直接修改,会修改指针地址中的内容;解决方法:(1)使用JSON转换:this.model=JSON.parse(JSON.stringtify(record));(2)使用Object.assign:this.model=Object.assign({},record);......
  • A1--Zookeeper部署
    (1)将/data/zookeeper/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfgmv zoo_sample.cfgzoo.cfg (2)打开 zoo.cfg 文件,修改 dataDir 路径:vimzoo.cfg修改数据存储路径配置dataDir=/data/zookeeper/zkData......
  • A2--Kafka部署
    一、版本信息  JDK1.8kafka3.3.1二、集群架构                          Kafka-Kraft 架构介绍 左图为Kafka原有架构,元数据在zookeeper中,运行时动态选举controller,由controller进......
  • CDH+Hive部署
    CDH介绍:  CDH全称Cloudera’sDistributionIncludingApacheHadoop,是Cloudera公司提供的一个ApacheHadoop发行版。CDH将Hadoop与其他十几个关键的开源项目集成,并且加入了集群自动化安装、中心化管理、集群监控、报警等功能。Hive介绍:  Hive是基于Hadoop的一......