黑马商城

发布时间 2023-06-05 12:01:14作者: 一只快乐的柠檬精J

黑马商城分为三块

其中,前端部分有二


一、首先将前端项目部署到nginx

写在前面 : linux 安装nginx

  • 安装依赖包

    由于nginx是基于c语言开发的,所以需要安装c语言的编译环境,及正则表达式库等第三方依赖库。

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    
  • 下载Nginx安装包

    yum install wget
    wget https://nginx.org/download/nginx-1.16.1.tar.gz
    

    wget :

    ​ wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。

    执行完wget指令后,就会在当前所在目录看到下载下来的文件。

  • 解压nginx压缩包

    tar -zxvf nginx-1.16.1.tar.gz
    
  • 配置Nginx编译环境

    cd nginx-1.16.1
    ./configure --prefix=/usr/local/nginx
    
  • ** 编译&安装**

    make & make install
    

几个重要nginx指令

以下指令都要在nginx安装目录下的sbin下执行

若想改变,改配置类即可

./nginx               启动nginx  
./nginx -s reload      重启nginx
./nginx -s stop        停止nginx

部署静态资源

  • 首先将静态资源文件拉入 /usr/local/nginx/html

  • 配置首页为我们目标文件首页

    • 进入 /usr/local/nginx/conf ,配置目标端口

    • 在nginx.conf 中可以配置server,注意,原本默认80端口的server可以不用删除,可以配置多个server

访问自己的虚拟机ip + 端口,若成功出现相应页面,即成功

这里是 : http://192.168.197.100:9001


二 、解决跨域问题

这里用到网关 gateway

在你的项目中创建网关module

  1. 导入依赖

     <dependencies>
            <!--网关-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-gateway</artifactId>
            </dependency>
            <!--nacos服务发现依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
        </dependencies>
    
  2. 编写启动类

    package com.hmall.gateway;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class GatewayApplication {
        public static void main(String[] args) {
            SpringApplication.run(GatewayApplication.class, args);
        }
    }
    
  3. 编写配置类 application.yml

    这里主要配置两个点

    • 路由 routes
    • 全局跨域 globalcors
  • server:
      port: 10010 # 网关端口
    spring:
      application:
        name: gateway # 服务名
      cloud:
        nacos:
          server-addr: localhost:8848 # nacos的端口
        gateway:
          routes:
            - id: item-service # 自己取
              uri: lb://itemservice # 和模块服务名必须一致!!!
              predicates: # 断言       
                - Path=/item/**  
          globalcors: # 全局的跨域处理
            add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
            corsConfigurations:
              '[/**]':
                allowedOrigins: # 允许哪些网站的跨域请求
                  - "http://192.168.197.100:9001"
                  - "http://192.168.197.100:9002"
                allowedMethods: # 允许的跨域ajax的请求方式
                  - "GET"
                  - "POST"
                  - "DELETE"
                  - "PUT"
                  - "OPTIONS"
                allowedHeaders: "*" # 允许在请求中携带的头信息
                allowCredentials: true # 是否允许携带cookie
                maxAge: 360000 # 这次跨域检测的有效期
    
    

至此,网关也配置完毕,项目结构基本搭建完成,可以开始写代码啦~~