Linux服务器搭建概要(一)

环境信息

centos7.2

安装目录

MYSQL安装

JDK安装

ACTIVEMQ安装

防火墙和白名单配置

Tomcat下载与安装

Redis下载与安装

nginx安装与配置实现负载均衡

MYSQL安装

1. 安装前工作

在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库)。

卸载系统自带的Mariadb:

查看mariadb数据库:

rpm -qa | grep mariadb

*卸载mariadb数据库:*

rpm -e --nodeps  mariadb文件名

卸载已安装的mysql:

查看 mysql 数据库:

rpm -qa | grep -i mysql

卸载 mysql 数据库:

rpm -e mysql文件名 # 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:rpm -e –nodeps mysql文件名)
删除etc目录下的my.cnf文件:

rm /etc/my.cnf

2. 安装MYSQL步骤

mysql官方(http://dev.mysql.com/downloads/repo/yum/)获取Yum Repository。

获取rpm镜像文件

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

md5校验文件

md5sum mysql57-community-release-el7-11.noarch.rpm      ##md5校验

安装mysql

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

yum -y install mysql-server

设置mysql为自启动

systemctl enable mysqld #设置开机启动
systemctl disable mysqld #关闭开机启动

重启mysql服务
#

service mysqld restart  [start, stop, restart, try-restart, reload, force-reload, status] #后面的都是可选项

查看3306端口是否启动

netstat -ln | grep 3306

首次查看自动产生的随即密码

grep "paasword" /var/log/mysqld.log
或者使用
cat /var/log/mysqld.log | grep password

修改密码策略(支持简单密码)也可以看下一步的配置文件关闭密码插件

set global validate_password_policy=0;     ###基于密码长度(修改为LOW方式)
set global validate_password_length=1      ###

修改配置文件(vim /etc/my.cnf)

编辑配置文件

vim /etc/my.cnf

插入以下文件

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

登录并修改密码

登录

mysql -uroot -p

修改密码

set password=password('新密码');
# 或者set PASSWORD = PASSWORD('新密码'); 也可以

生效

flush privileges; #刷新

添加远程访问权限

#登录mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;
mysql> flush privileges;
#退出mysql,重启mysql服务生效

JAVA安装

1. 安装前工作

下载jdk传送门

检查版本,卸载openjdk

java -version   #查看jdk安装版本


rpm -qa | grep java   #查看安装的包信息

#卸载上面查到的安装包,卸载完

[root@localhost ~]# rpm -e --nodeps tzdata-java-2014i-1.el7.noarch
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.71-2.5.3.1.el7_0.x86_64
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64

上传下载的jdk或者wget

rz   #进行上传(也可以自己使用ftp上传)
或者
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm       #jdk1.8版本的

安装jdk

rpm -ivh jdk-8u181-linux-x64.rpm  

验证安装

java -version

配置环境变量

vi  /etc/profile

追加信息

JAVA_HOME=/usr/java/jdk1.8.0_25
JRE_HOME=/usr/java/jdk1.8.0_25/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

使修改生效

[root@localhost ~]# source /etc/profile   //使修改立即生效
[root@localhost ~]#        echo $PATH   //查看PATH值

查看系统环境状态

[root@localhost ~]# echo $PATH

ACTIVEMQ安装

1. 安装前工作

下载activeMQ传送门

下载

使用此插件进行上传刚刚上一步(下载activeMQ传送门)下载的文件
rz
或者直接卸载(5.15.5)版本
wget http://apache.fayea.com/activemq/5.15.5/apache-activemq-5.15.5-bin.tar.gz

解压

tar -zxvf apache-activemq-5.15.5-bin.tar.gz

启动

进入bin目录
[root@iz2ze7qyvg1mht4uptlc5uz bin]# pwd
/usr/local/java/apache-activemq-5.15.4/bin


./activemq start

查看启动情况(进程)

ps -ef | grep activemq

防火强添加端口开放(8161,61616)

防火墙和白名单配置

iptables防火墙

安装防火墙

yum -y install iptables-services

编辑防火墙的配置文件

vi /etc/sysconfig/iptables 

基本操作

查看防火墙状态
service iptables status

停止防火墙
service iptables stop

启动防火墙
service iptables start

重启防火墙
service iptables restart

永久关闭防火墙
chkconfig iptables off

永久关闭后重启
chkconfig iptables on  

禁止iptables开机启动
systemctl disable iptables.service

设置防火墙开机启动
systemctl enable iptables.service

查看防火墙状态

service iptables status  

增加开放端口
这个需要看看配置文件的位置


/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
或者
vim /etc/sysconfig/iptables
# 加入如下代码,比着两葫芦画瓢 :)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

保存后重启防火墙

service iptables restart

firewall防火墙

基本操作

查看状态systemctl status firewalld
或者
firewall-cmd –state

开启
service firewalld start

重启
service firewalld restart

关闭
service firewalld stop

查看防火墙规则
firewall-cmd –list-all

禁止firewall开机启动
systemctl disable firewalld.service

设置防火墙开机启动
systemctl enable firewalld.service

端口操作

#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放80端口
firewall-cmd --permanent --zone=public --add-port=80/tcp
#移除端口
firewall-cmd --permanent --zone=public --remove-port=8080/tcp

查看配置文件的端口开放

cat /etc/firewalld/zones/public.xml

重启防火墙

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

参数解释

1. firwall-cmd:是Linux提供的操作firewall的一个工具;
2. --permanent:表示设置为持久;
3. --add-port:标识添加的端口;

tomcat下载与安装

1. 安装前工作

下载tomcat传送门

下载

wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz

解压

tar -xzvf apache-tomcat-9.0.2.tar.gz 

修改系统配置

[root@JDK-Tomcat apache-tomcat-9.0.2]# vi /etc/profil
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.32/
[root@JDK-Tomcat bin]# source /etc/profile

设置Tomcat开机自启动
在Tomcat的bin下面的catalina.sh添加以下配置

export JAVA_HOME=/usr/java/jdk1.8.0_151
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export PATH=$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.32/bin/catalina.sh start


#编辑/etc/rc.d/rc.local配置文件
/usr/local/tomcat/apache-tomcat-8.5.32/bin/startup.sh

#给/etc/rc.d/rc.local加上执行权限,这个很重要,别忘了!否则不会执行!
chmod u+x /etc/rc.d/rc.local 

优化

#在/usr/local/tomcat/apache-tomcat-8.5.32/bin/catalina.sh新增如下一行:
JAVA_OPTS="-XX:MaxPermSize=192M -Xms1000M -Xmx2000M"

验证

关闭服务器,重启观察是否正常开机自启动?

redis下载与安装

1. 安装前工作

下载redis传送门

下载

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

配置编译环境:

sudo yum install gcc-c++

解压

tar -xzvf redis-4.0.10.tar.gz

编译

#进入redis的解压目录
make install 

编辑配置文件

vim /usr/local/redis/redis.conf
① 在bind 127.0.0.1修改为bind 0.0.0.0(设置为可以远程访问)

② 默认为保护模式,把 protected-mode yes 改为 protected-mode no

③ 默认为不守护进程模式,把daemonize no 改为daemonize yes(后台启动)

④ 将 requirepass foobared前的“#”去掉,密码改为你想要设置的密码(我为了练习用,设置为123456)

⑤  可以改rdb的文件位置dir ./改为 dir /usr/redis/db(你的rdb目录)

⑥  可以改redis的日志文件位置logfile "",改为logfile "redis6379.log"

⑦  保存

跟随系统启动

./usr/local/java/redis-4.0.10/utils/install_server.sh

Redis服务查看、开启、关闭:

a.通过ps -ef|grep redis命令查看Redis进程
b.开启Redis服务操作通过/etc/init.d/redis_6379 start命令,也可通过(service redis_6379 start)
c.关闭Redis服务操作通过/etc/init.d/redis_6379 stop命令,也可通过(service redis_6379 stop)
d.重启    /etc/init.d/redis_6379 restart

创建redis的软连接

# 相当于超链接
ln -s /usr/local/redis/redis-cli /usr/bin/redis

端口开发

vim /etc/sysconfig/iptables
增加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
重启
systemctl restart iptables.service

验证

不报错就可以了
telnet ip 6379

nginx安装与配置实现负载均衡

1. 安装前工作

下载nginx传送门

下载

wget http://dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

(ps:网上有一些源是不完全的,只是安装了简单的nginx,其他一些依赖并没有一起安装,导致配置文件不 全。请用这里的连接,完整可用。)

安装nginx

rpm -ivh epel-release-latest-7.noarch.rpm
yum install nginx

基础操作

systemctl enable nginx (加入开机启动)
systemctl start nginx (开启nginx)
systemctl status nginx (查看状态)
systemctl stop nginx (关闭nginx)
systemctl restart nginx (重启nginx)
nginx -s reload         (重载配置文件-不会重启)

nginx实现负载均衡

顾名思义就是将多个请求分发到不同的服务上,实现均衡的负载,减小单个服务的压力。

使用Nginx实现反向代理作用(代理域名解析不同端口)

$ vi /etc/nginx/nginx.conf  (修改配置文件,全局配置文件)

修改实例

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
#(默认为自动,可以自己设置,一般不大于cpu核数)
worker_processes auto;
#(错误日志路径)
error_log /var/log/nginx/error.log;
#(pid文件路径)
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    #(设置网路连接序列化,防止惊群现象发生,默认为on)
    accept_mutex on;
    #(设置一个进程是否同时接受多个网络连接,默认为off)
    multi_accept on;
    #(一个进程的最大连接数)
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    #(这里注释掉)
    #tcp_nopush          on;
    tcp_nodelay         on;
    #(连接超时时间)
    keepalive_timeout   65;
    types_hash_max_size 2048;
    #开启压缩
    gzip on;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;


# 这里设置负载均衡,负载均衡有多种策略,nginx自带的有轮询,权重,ip-hash,响应时间等策略。
# 默认为平分http负载,为轮询的方式。
# 权重则是按照权重来分发请求,权重高的负载大
# ip-hash,根据ip来分配,保持同一个ip分在同一台服务器上。
# 响应时间,根据服务器都nginx 的响应时间,优先分发给响应速度快的服务器。
#集中策略可以适当组合
    upstream tomcat { #(tomcat为自定义的负载均衡规则名,可以自己定义)
        ip_hash; #(ip_hash则为ip-hash方法)
        server 192.168.14.132:8080 weight=5; #(weihgt为权重)
        server 192.168.14.133:8080 weight=3;


    ## 可以定义多组规则
}



    server {
        #(默认监听80端口)
        listen       80 default_server;
    #(监听的服务器)
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

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

    #( /  表示所有请求,可以自定义来针对不同的域名设定不同负载规则 和服务)
        location / {
        # proxy_pass    http://tomcat; (反向代理,填上你自己的负载均衡规则名)
        # proxy_redirect off; (下面一些设置可以直接复制过去,不要的话,有可能导致一些 没法认证等的问题)
        # proxy_set_header Host $host;
            #proxy_set_header X-Real-IP $remote_addr;
            #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #proxy_connect_timeout 90; (下面这几个都只是一些超时设置,可不要)
            #proxy_send_timeout 90;
            #proxy_read_timeout 90;

        }

    # location ~\.(gif|jpg|png)$ { (比如,以正则表达式写)  
    #  root /home/root/images;
    #  }


        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

反向代理作用

现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。 

配置实例


upstream tomcatserver1 {
    server 192.168.72.49:8081;
    }
upstream tomcatserver2 {
    server 192.168.72.49:8082;
    }
server {
        listen       80;
        server_name  8081.max.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcatserver1;
            index  index.html index.htm;
        }     
    }
server {
        listen       80;
        server_name  8082.max.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcatserver2;
            index  index.html index.htm;
        }        
    }

配置讲解原文传送门

Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。下面演示如何进行配置使Nginx发挥作用。

  1. 模拟n个http服务器作为目标主机
    用作测试,简单的使用2个tomcat实例模拟两台http服务器,分别将tomcat的端口改为8081和8082
  2. 配置IP域名
    192.168.72.49 8081.max.com
    192.168.72.49 8082.max.com
  3. 配置nginx.conf
  4. 流程:
    1)浏览器访问8081.max.com,通过本地host文件域名解析,找到192.168.72.49服务器(安装nginx)
    2)nginx反向代理接受客户机请求,找到server_name为8081.max.com的server节点,根据proxy_pass对应的http路径,将请求转发到upstream tomcatserver1上,即端口号为8081的tomcat服务器。
  5. 效果展示
    请求8081.max.com,tomcat1接收返回首页
    请求8082.max.com,tomcat2接收返回首页
  6. 总结
    通过分析我们不难得出,以百度为例,如果客户机的IP和百度服务器(目标主机)的IP在同一个网段,那就形同局域网内部发送请求,速度极快。
    但如果满足不了这种需求还想到达到一个较好的请求响应时,百度服务器就可以对外提供一个与目标服务器在一个网段的公网IP,也就是反向代理服务的IP,通过代理服务器转发客户机请求,决定幕后的N台服务器谁来处理这个请求,并且由于反向代理服务器与目标主机在一个网段,访问速度也会很快。
    Nginx用作反向代理服务器时,它就是众多反向代理服务器中的一种,通过简单的配置,指定到服务器IP或域名地址便可将客户机请求转发给指定服务器处理请求。

猜你喜欢

转载自blog.csdn.net/a656678879/article/details/81665134