基于Springboot+vue前后端分离商城项目基本开发手册——生产环境安装及配置【五】

nginx安装与跨域配置

安装mysql

安装redis

传统方式部署项目

docker

 

本文为大家介绍了CentOS 7 64位 安装 nginx与跨域配置 的详细步骤

Nginx官方提供了Yum源

1、安装nginx

yum install -y nginx

2、启动Nginx并设置开机自动运行

systemctl start nginx.service
systemctl enable nginx.service

3、配置nginx

vi /etc/nginx/nginx.conf

使用上面的命令编辑nginx的配置文件,先把配置文件中的server注释掉,然后添加下面的语句

#小程序接口的域名配置,小程序规定要https,填写对应域名,并把https证书上传至服务器
server {
        listen 443;
        server_name mini-api.gz-yami.com;
        ssl on;
        ssl_certificate     /usr/share/nginx/cert/xxxxxxxxxxxxxxxx.pem;
		ssl_certificate_key /usr/share/nginx/cert/xxxxxxxxxxxxxxxx.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_pass http://127.0.0.1:8082;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

#后台域名配置,后台vue页面代码上传至 /usr/share/nginx/admin
server {
    listen       80;
	server_name  mini-admin.gz-yami.com;
    root         /usr/share/nginx/admin;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }
        
	# 跨域配置
	location /apis {
		rewrite  ^/apis/(.*)$ /$1 break;
		proxy_pass   http://127.0.0.1:8081;
    }
        
}

4、重启nginx,让配置生效

systemctl restart nginx.service

 

 

安装mysql

本文为大家介绍了CentOS 7 64位 安装 MySQL5.7 的详细步骤

1、配置YUM源

在[MySQL]官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/

# 下载mysql源安装包

shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

#安装mysql源

shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

shell> yum repolist enabled | grep "mysql.*-community.*"

2、安装MySQL

shell>  yum install mysql-community-server

3、配置默认编码为utf8 并且设置不区分大小写

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

lower_case_table_names=1

4、启动MySQL服务

shell>  systemctl start mysqld

5、开机启动

shell>  systemctl enable mysqld 
shell>  systemctl daemon-reload

6、修改root默认密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

shell> grep 'temporary password' /var/log/mysqld.log

查看到密码后用root登录修改密码

shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 

或者

mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); 

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

7、创建数据库并添加远程登录用户

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

mysql>  create database yamidb CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>  GRANT ALL PRIVILEGES ON yamidb.* TO 'yami'@'%' IDENTIFIED BY 'Yami@2019';

 

 

安装redis

安装redis

#安装tcl redis需要
wget http://downloads.sourceforge.net/tcl/tcl8.6.8-src.tar.gz
tar xzvf tcl8.6.8-src.tar.gz -C /usr/local/
cd  /usr/local/tcl8.6.8/unix/
./configure  
make && make install

#安装redis
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar xzvf redis-4.0.11.tar.gz -C /usr/local/
cd  /usr/local/redis-4.0.11/
make && make test && make install

redis的生产环境启动方案

要把redis作为一个系统的daemon进程去运行的,每次系统启动,redis进程一起启动

  1. wget下载redis解压出来的文件夹里面有个utils,utils目录下有个redis_init_script脚本
  2. 将redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
  3. 修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
  4. 创建两个目录:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)
  5. 修改redis配置文件(默认在根目录下,redis.conf),拷贝到/etc/redis目录中,修改名称为6379.conf
  6. 修改redis.conf中的部分配置为生产环境
daemonize	yes							让redis以daemon进程运行
pidfile		/var/run/redis_6379.pid 	设置redis的pid文件位置
port		6379						设置redis的监听端口号
dir 		/var/redis/6379				设置持久化文件的存储位置
  1. 启动redis,执行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start
  2. 确认redis进程是否启动,ps -ef | grep redis
  3. 让redis跟随系统启动自动启动

在redis_6379脚本中,最上面,加入两行注释

# chkconfig:   2345 90 10

# description:  Redis is a persistent key-value database

执行

chkconfig redis_6379 on

redis cli的使用

redis-cli SHUTDOWN,连接本机的6379端口停止redis进程

redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要连接的ip和端口号

redis-cli PING,ping redis的端口,看是否正常

redis-cli,进入交互式命令行

 

传统方式部署项目

安装jdk

安装JDK,如果没有java-1.8.0-openjdk-devel就没有javac命令

yum  install  java-1.8.0-openjdk   java-1.8.0-openjdk-devel

编译打包项目

项目最终需要进行编译打包上传到服务器,生产环境上的配置与测试环境不同,需要独立配置一些东西,满足自己的需要

1. mall4j

  1. 修改yami-shop-admin\src\main\resources\application-prod.yml 更改为生产环境的数据库账号密码,端口号等

  2. 修改yami-shop-admin\src\main\resources\logback-prod.xml 修改里面的PROJECT_PATH 将/opt/projects/yami-shops改为自己生产环境的项目路径

  3. 修改yami-shop-api\src\main\resources\application-prod.yml 更改为生产环境的数据库账号密码,端口号等,还有目前项目推荐对undertow使用200线程的数量,用于支撑用户的并发请求,可以根据实际情况修改,既修改

    undertow:
      worker-threads: 200
    
  4. 修改yami-shop-api\src\main\resources\logback-prod.xml 修改里面的PROJECT_PATH 将/opt/projects/yami-shops 改为自己生产环境的项目路径

  5. 修改yami-shop-api\src\main\resources\api.properties 修改里面的api.domainName 为正式环境域名,这里的域名指的是你api项目的域名,因为收到微信的回掉是在这里配置的,否则无法收到微信支付回调,从而订单变为支付成功的状态,具体可以看【接口设计/订单设计-支付】这篇文章。

以上 1、2 工程目录为 yami-shop-admin 而 3、4、5 工程目录为 yami-shop-api 请注意区分

  1. 修改完毕后打包,使用mvn clean package -DskipTests 命令进行打包,最终会生成很多的jar,我们需要其中两个。
  • 商城后台接口 yami-shop-admin\target\yami-shop-admin-0.0.1-SNAPSHOT.jar
  • 商城前端接口yami-shop-api\target\yami-shop-api-0.0.1-SNAPSHOT.jar
  1. 将两个jar上传到centos环境中

  2. 在生产环境中运行时候,需要使用-Dspring.profiles.active=prod 运行:

nohup java -jar -Dspring.profiles.active=prod "${jarPath}/${jarName}" > "${jarPath}/log/${moduleName}-console.log" &
  • 替换${jarPath} 为jar 所在路径
  • 替换${jarName} 为jar 所在路径
  • 替换${moduleName} 为adminapi
  1. 查看控制台日志输出
# 后台日志
tail -f ${PROJECT_PATH}/log/admin.log
# 前端接口日志
tail -f ${PROJECT_PATH}/log/admin.log
  • 替换${PROJECT_PATH} 为logback-prod.xml 里面修改的PROJECT_PATH 路径
  1. 使用nginx将请求指向特定的端口。

2.vue

vue项目的打包构建相对比较简单,但是要注意跨域的问题,相关可以查阅《nginx安装与跨域配置》这篇文章。

下面来说下步骤:

  1. 修改static\config\index-prod.js 将baseUrl 改为接口的请求地址,并携带/apis的路径,方便修改跨域的配置
  2. 使用 npm run build 命令对项目进行打包
  3. 将步骤2中生成的dist 文件夹中的文件,压缩,上传到服务器,解压
  4. 使用nginx指向上传解压好的目录
  5. 输入域名即可访问

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值