服务部署

作者:知乎用户qJaQoF
链接:https://zhuanlan.zhihu.com/p/32807158
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

配置javaweb环境

JDK8
Tomcat8
mysql->mariadb

数据库配置

yum -y install mariadb mariadb-server
# systemctl start mariadb
# systemctl enable mariadb
# mysql_secure_installation

mysql -uroot -p

sqlyog连接mysql
连接不上用如下命令:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

MariaDB [(none)]> FLUSH PRIVILEGES;

并且关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld

准备文件

从windows发送文件到centos:
$ scp D:/jdk1.8.0_60.tar.gz root@192.168.116.129:/opt
解压到/opt:
tar -xzf jdk1.8.0_60.tar.gz
rm -rf /opt/jdk1.8.0_60.tar.gz

新建tomcat文件夹,复制apache-tomcat

配置Java jdk

cd进入根目录
[root@localhost ~]# vim .bashrc
#javahome
export JAVA_HOME=/opt/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin

生效命令:
source .bashrc
java -version查看版本
echo $PATH

tomcat解压就能用

改配置
cd /opt/apache-tomcat-8.0.46/conf
cat web.xml

启动tomcat
cd /opt
[root@localhost opt]# apache-tomcat-8.0.46/bin/startup.sh

浏览器打开测试:http://192.168.116.129:8080/

传送GM_BMI.war到/opt/apache-tomcat-8.0.46/webapps并自动解压:
$ scp D:/GM_BMI.war root@192.168.116.129:/opt/apache-tomcat-8.0.46/webapps

测试地址:
http://192.168.116.129:8080/GM_BMI/

查看端口:
lsof -i:80

查看进程:
ps aux |grep tomcat

模拟另一台tomcat
配置端口
vim /opt/apache-tomcat-8.0.46/conf/server.xml
8081 重定向8444
8010 重定向8444
22: 8006 shutdown

启动服务
[root@localhost apache-tomcat-8.0.46]# bin/startup.sh

测试地址:
http://192.168.116.129:8081/GM_BMI/


Nginx

1、安装

下载对应当前系统版本的nginx包(package)
# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

建立nginx的yum仓库
# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

下载并安装nginx
# yum -y install nginx

启动nginx服务
systemctl start nginx
systemctl enable nginx

配置
默认的配置文件在 /etc/nginx 路径下,使用该配置已经可以正确地运行nginx;如需要自定义,修改其下的 nginx.conf 等文件即可。

测试
在浏览器地址栏中输入部署nginx环境的机器的IP,如果一切正常,应该能看到如下字样的内容。

2、反向代理

cd /etc/nginx/conf.d/
vim /etc/nginx/conf.d/default.conf
proction /{
proxy_pass http://tomcats;
}
vim tomcats.conf
upstream tomcats{
ip_hash;
server 192.168.116.129:8080;
server 192.168.116.129:8081;
}
systemctl restart nginx
nginx -s reload
setenforce 0

3、动静分离
image.png
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
location ~ .(html|jpg|css|js|png|mp3)$ {
root /opt/static;
}

重新加载配置文件
[root@localhost ~]# nginx -s reload

测试ip,不会加载图片等静态资源

[root@localhost ~]# mkdir /opt/static
[root@localhost ~]# cp /opt/tomcat/apache-tomcat-8.0.46/webapps/GM_BMI /opt/static/
再次测试ip(ctrl+f5),会加载静态资源

4、负载均衡

keepalived
image.png
克隆第一台机器,全部开机
第一台删除nginx, 第二台删除mariadb,2台tomcat
yum -y remove nginx
yum -y remove mari
rm -rf /var/lib/mysql/

第二台修改nginx反向代理ip
vim /etc/nginx/conf.d/default.conf
proxy_pass http://tomcats;
vim /etc/nginx/conf.d/tomcats.conf
upstream tomcats{
ip_hash;
server 192.168.116.129:8080;
server 192.168.116.129:8081;
}

第二台启动nginx, 请求浏览器,地址为nginx 的ip

第二台 yum安装keepalived
修改keepalived配置文件
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_DEVEL1
}

vrrp_instance VI_1 {
state MASTER
interface eno16777736
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.116.200
}
}

重启keepalived
[root@localhost ~]# systemctl restart keepalived
[root@localhost ~]# ip a |grep 192.168.116.200
inet 192.168.116.200/32 scope global eno16777736

若失败检查日志:
[root@localhost ~]# tail -f /var/log/messages

复制第二台,修改keepalived配置文件 2 ,BACKUP, 50,重启服务

将第二台挂起,再次请求浏览器看是否还能访问项目

看第三台是否有vip

第二台开机,看是否将vip抢回

部署网校系统

作者:知乎用户qJaQoF
链接:https://zhuanlan.zhihu.com/p/32807390
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

基础环境

安装epel源
[root@aliyun ~]# yum -y install epel-release

停用防火墙
[root@aliyun ~]# systemctl stop firewalld
[root@aliyun ~]# systemctl disable firewalld

关闭selinux
暂时关闭:
setenforce 0
永久关闭:
vim /etc/sysconfig/selinux
selinux=disabled


LAMP环境

1、安装相关的包

[root@aliyun ~]# yum -y install httpd
[root@aliyun ~]# yum -y install php php-cli php-curl php-fpm php-intl php-mcrypt php-mysql php-gd php-mbstring php-xml php-dom
[root@aliyun ~]# yum -y install mariadb-server mariadb
[root@aliyun ~]# yum -y install mod_xsendfile

2、配置apache

[root@aliyun ~]# systemctl start httpd
[root@aliyun ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/
httpd.service.

浏览器测试欢迎页面192.168.119.126
[root@aliyun ~]# rm -rf /etc/httpd/conf.d/welcome.conf
[root@aliyun ~]# vim /var/www/html/index.html
welcome to edusoho!

3、配置mysql

[root@aliyun ~]# systemctl start mariadb
[root@aliyun ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/
mariadb.service.

[root@aliyun ~]# mysql_secure_installation
YYYYY
[root@aliyun ~]# mysql -uroot -p
MariaDB [(none)]> create database edusoho;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+——————————+
| Database |
+——————————+
| information_schema |
| edusoho |
| mysql |
| performance_schema |
+——————————+
4 rows in set (0.00 sec)

4、配置php

[root@aliyun ~]# vim /etc/php.ini
/string查找并修改
post_max_size = 1024M
memory_limit = 1024M
upload_max_filesize = 1024M
date.timezone = Asia/ShangHai

[root@aliyun ~]# vim /etc/php-fpm.d/www.conf
listen.owner = apache
listen.group = apache
listen.mode = 0666
[root@aliyun web]# systemctl start php-fpm
[root@aliyun web]# systemctl enable php-fpm
[root@aliyun ~]# cd /var/www/html/
[root@aliyun html]# ls
index.html
[root@aliyun html]# vim index.php
<?php
phpinfo()
?>
浏览器中输入本机的ip地址/index.php,出现info页面表明php安装成功
否则,重启httpd服务,php-fpm服务
LAMP环境OK….

edusoho部署

1、download

[root@aliyun ~]# wget http://download.edusoho.com/edusoho-7.5.12.tar.gz
[root@aliyun Desktop]# tar xf edusoho-7.5.12.tar.gz
[root@localhost Desktop]# mv edusoho /var/www/html/
[root@aliyun ~]# chown -R apache.apache /var/www/html/edusoho/

2、部署

[root@aliyun ~]# vim /etc/httpd/conf.d/edusoho.conf

ServerName http://www.xiaochen.org
DocumentRoot /var/www/html/edusoho/web


AllowOverride All
Require all granted

检查配置文件是否存在语法错误
[root@localhost ~]# httpd -t
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using ::1. Set the
‘ServerName’ directive globally to suppress this message
Syntax OK
[root@aliyun ~]# systemctl restart httpd

3、访问测试并安装网站
AccessKey: B8V2t1Lu8d983R7Wz3oSMfigGvYY3hTE
SecretKey: pOHSPsnXGx6KoeGYh5Q4l9k1Ej0IATn0
网校系统搭建成功,可以登陆上传视频