这篇日记就一个目的,记录一下部署的过程,以供大家参考
手记主要是准备分享数据库和负载均衡的部署内容,同时会给一个参考的跨域解决方案。
前置准备:
- 仿猫眼后端项目开发完成
- 获取仿猫眼前端工程
- CentOS主机
温馨提示:
- 仿猫眼项目并非必须,只要是前后端分离项目即可参考本章
- CentOS主机最好有一个公网IP,如果没有,可以将章节内的IP地址【域名】换成内网地址【hostname】
- 这里不会普及基础内容,比如Linux基础命令、如何使用远程ssh工具等,但会贴出所有的命令
- 如果对猫眼项目感兴趣,可以查找链接:
https://coding.imooc.com/class/273.html?mc_marking=c16bc1b1f26c6e1c1a345f89d1c7119f&mc_channel=syb44
废话不多说,let‘s go !!!
看一下目录结构,先有个大致了解,以下目录仅代表我个人习惯:
首先,我们把后端代码拷贝到服务器上:
安装MySQL数据库:
由于项目需要MySQL5.6以上版本的数据库,但是CentOS默认的版本过低,所以我们要先安装Mysql的数据源
1、获取数据源安装文件:
wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
2、安装数据源包:
rpm -Uvh mysql57-community-release-el6-9.noarch.rpm
更新以后,在/etc/yum.repo.d/目录下会多出MySQL相关的内容
3、yum源安装MySQL数据库
命令:yum install -y mysql-community-server
4、开启MySQL服务
service mysqld start
5、查看MySQL初始密码
grep 'temporary password' /var/log/mysqld.log
此处一定要注意,这个密码查看以后要快点登陆,不然会有失效的可能哦!!!
6、登陆数据库
mysql -uroot -p
7、修改数据库密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
8、修改数据库远程登陆权限
选择库:use mysql;
修改权限标识:update user set host='%' where user='root';
刷新权限:flush privileges;
至此数据库已经完成了, 至于导入数据和数据表就是so easy的事了,这里就不啰嗦了
安装JDK
后端工程使用的是Java进行开发,所以需要对JDK进行安装
1、拷贝JDK至服务器
2、配置环境变量
vi /etc/profile
3、使环境变量生效
安装Zookeeper
工程是用的Dubbo进行微服务拆分的,注册中心使用的是Zookeeper,所以我们还需要安装zookeeper使用
1、下载zookeeper
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
解压至需要的目录
2、修改zookeeper配置文件
进入到zookeeper下的conf目录,并且修改配置文件名称:
mv zoo_sample.cfg zoo.cfg
3、启动zookeeper文件
进入zookeeper的bin目录下,执行命令:
./zkServer.sh start
安装Openresty
如果大家现在还不知道什么是Openresty的话,那大家真的应该补补这一部分内容。
不过这次还好,我们只是把它当作Nginx在使用,可以Openresty真的应该是大家熟知必会的内容,相信我!
1、下载Openresty的安装包
wget https://openresty.org/download/openresty-1.13.6.2.tar.gz
2、解压缩安装包
tar -zxvf openresty-1.13.6.2.tar.gz
3、安装Openresty
进入openresty的目录,展示结构如下:
安装基础依赖:
yum install -y pcre-devel openssl-devel gcc curl
执行命令:
./configure --prefix=/opt/install/openresty \
--with-luajit \
--without-http_redis2_module \
--with-http_iconv_module
make & make install
这里刷的太快了, 来不及截图了,大家直接执行就可以,执行成功以后就可以在/opt/install/openresty里找到你安装以后的内容了
配置文件更新:
进入openresty/nginx/conf目录:
打开nginx.conf文件,找到第43行:
更新为以下内容:
进入Nginx的sbin目录,然后启动Nginx:
至此大家已经通过访问80端口来访问工程了
但是通过我们的前端工程访问,会出现如下问题:
图片地址的问题,我们暂时先不管它,重点是先解决跨域问题【如果对跨域问题不了解,可以参见文章最后】
我们需要在配置文件中加入跨域许可的配置,let’s go!
找到我们刚刚加入配置的地方,加入如下代码:
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
样式如下:
配置完成后,进入Nginx的sbin目录,然后重启Nginx,命令如下:
./nginx -s reload
再次查看刚刚的问题页面:
从图中可以看到,跨域的问题已经解决了, 这个404的错误仅仅只是因为我们的图片服务器没有配置,所以会出现找不到的情况。
其实至此我们已经把整个的安装部署完成了,后面我会把图片服务器配置完成,让大家可以使用前端工程进行访问,构建自己的电影网站。
小贴士:
跨域:
跨域其实就是a.com域名下的js无法操作b.com或是c.a.com域名下的对象
跨域问题其实由来已久,只不过到了前后端分离以后变的越发突出, 前后端分离说白了其实是一个Web应用【前端】访问另外一个Web应用【后端】,前端的作用是负责展示数据,后端是负责提供数据,所以才会出现跨域问题。
我们在文中是一种解决方案。
跨域的解决方案相对比较多,大家可以参考慕课的文章:http://www.imooc.com/article/40074
欢迎关注课程:
共同学习,写下你的评论
评论加载中...
作者其他优质文章