美文网首页
程序日记2018-05-04

程序日记2018-05-04

作者: Purson | 来源:发表于2018-06-20 07:17 被阅读0次

Centos7上卸载Mariadb数据库

查询所安装的MariaDB组件:

[root@localhost logs]# rpm -qa | grep Maria*
MariaDB-server-5.5.49-1.el7.centos.x86_64
MariaDB-common-5.5.49-1.el7.centos.x86_64
MariaDB-client-5.5.49-1.el7.centos.x86_64

卸载数据库:

[root@localhost logs]# yum -y remove mari*

删除数据库文件:

[root@localhost logs]# rm -rf /var/lib/mysql/*

安装

yum -y install mariadb mariadb-server

启动

systemctl start mariadb

系统开启自启动

systemctl enable mariadb

接下来进行MariaDB的相关简单配置

mysql_secure_installation

上面的配置方法,设计到的配置项比较多,如果不需要太多的配置设置,也可以通过mysqladmin简单进行root密码设置即可本地登录:

mysqladmin -uroot -p password '1q2w3e'

初始root密码为空,设置root密码为1q2w3e。然后就可以本地mysql -uroot -p1q2w3e登录了。

修改字符集

vim /etc/my.conf

[mysqld]

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

character-set-server=utf8
collation-server=utf8_bin

添加用户和远程授权

首先配置允许访问的用户,采用授权的方式给用户权限

1
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
说明:root是登陆数据库的用户,123456是登陆数据库的密码,*就是意味着任何来源任何主机反正就是权限很大的样子。

最后配置好权限之后不应该忘记刷新使之生效

1
flush privileges;
再次访问就可以了吧。


Nginx配置端口转发 映射 以及连接超时问题

到端口转发,就不得不提端口映射,这两个的概念比较容易混淆。喜欢较真的同学就去查查概念吧……

知乎有人说:

端口转发:你给我了,我打开看看,发现这上面标志显示是要给张三,那么我就给张三去。如果标志是给李四,那我就再给李四去。

端口映射:你放到我左手,我就直接给张三;你放到我右手,我就直接给李四。这中间我不管你放我手上的是什么东西。

这里我认为应该叫端口映射为好,但是不管是什么都是用了nginx的反向代理模块。

先看图和业务吧

这里写图片描述

上面这个图呢,假设我们这五台服务器在一个集群里面,但是呢,由于集群内防火墙的原因,你的电脑只能连接1号机器,2、3、4、5访问不了,这个时候我们就需要在1号机器做做文章。通过访问1号机器的不同端口,来间接地访问后面的其他机器。

假设五台机器的IP分别是192.168.1.10、192.168.1.20、192.168.1.30、192.168.1.40、192.168.1.50

OK!那我们直接自定义端口映射配置下Nginx就好了呗?

No No No!我们再具体一下我们的需求。

我们把连接类型划分一下:两种。

第一种:http(对应Nginx http模块)

第二种:tcp/udp(对应Nginx stream模块)

比如我们的web项目,需要用浏览器访问的或其他的基于http协议的,要配置在http模块下。

像SSH,FTP这些,需要配置在stream模块下。

先说http,比如我们2号机器上有一只汤姆猫,端口8080,这时候我们就需要在Nginx上添加如下配置:

http{
    proxy_read_timeout 300s;
    proxy_send_timeout 300s;
    keepalive_requests 1000;
    keepalive_timeout 300s;
    server{
        listen  8888;
        location / {
            proxy_pass http://192.168.1.20:8080;
        }
    }
}

这段代码的意思就是,指向我1号机器(192.168.1.10:8888)的连接,都映射到192.168.1.20:8080上面。

参数:

“proxy_read_timeout”:从代理服务器读取响应的超时时间(默认60s),这个可以解决因为代理服务器响应过慢而导致的504 Time-out

“proxy_send_timeout”:向代理服务器发送请求的超时时间(默认60s)

“keepalive_timeout”:设置一个保持活动的客户端连接在服务器端保持打开状态的超时时间(默认75s)

“keepalive_requests”:这个参数默认是100,意思就是,一个连接,在他保持连接的状态内(我们设置的是300s),最多能发送1000个请求,如果超过1000请求,那么nginx会把这个连接断掉

如果我们3、4、5机器上面有数据库或者需要SSH连接的话,就要使用stream模块。

Demo如下:

stream{
    proxy_timeout 30m;
    server{
        listen  1521;
        proxy_pass 192.168.1.30:1521;
    }
    server{
        listen  3306;
        proxy_pass 192.168.1.30:3306;
    }
    server{
        listen  4022;
        proxy_pass 192.168.1.40:22;
    }
    server{
        listen  5022;
        proxy_pass 192.168.1.50:22;
    }
}

需要访问什么,加上我们自定义的端口号,就大功告成。比如我们要访问3号机器的MySQL,那么我们数据库连接就配置192.168.1.10:3306这样我们就能通过Nginx来轻松访问到192.168.1.30:3306的数据库了。

这里留意一个参数–”proxy_timeout 30m;“

注意:“proxy_timeout”这个参数可以写在stream节点下,所有server都生效,也可以单独写在一个server的节点下

这个参数不写的话,默认连接超时是10min,比如我们使用filezilla,10分钟没有任何动作的话,你的连接就会被干掉,ssh、数据库也是的。这里我保守设置30min,具体看自己的需求。

注意,这个超时并不会影响传输中的数据,比如我们设置成10s,这时候我们从ftp服务器上面下载一个文件,10s没下载完,且你没有任何动作的话,会提示连接已断开,但是实测文件还能继续传输,这应该是传输文件是单独出来的一个连接的缘故。

最后多说一点Nginx的配置。

worker_processes  2;

events{
    worker_connections  1024;
}

这是Nginx必须的配置,第一个参数,作者推荐写成处理器逻辑核心的个数,实际带来的最直观的效果就是,启动Nginx之后,一个主进程,外加这个参数的个数进程。比如我服务器32逻辑核心,我写了32。启动之后,33个nginx.exe,你闹不闹心,反正我是很闹心。我自己做过压力测试,3000+并发,这个参数写2都没任何问题。所以我推荐写2或者4即可。

第二个参数是最大连接数,这个就看具体使用环境了。几千几万都可以。

(补充:Windows下worker写多少都只有一个worker在工作,这个官方已经说明,而且我亲自实验了。还有一个点[windows和linux]就是每个worker能够处理的连接数是1024,也就是说最大连接数写10240的话,你的worker得是10,不然的话承受不了基本就是500或者连接拒绝)

最后,我们使用它很方便,最好还能监控。

OK!使用ngx_http_stub_status_module

具体的配置写在http模块下

server{
        location /basic_status {
            stub_status;
        }
    }

这时候我们访问http://192.168.1.10/basic_status,我们就能看到效果了。 文本如下:

Active connections: 22
server accepts handled requests
453 453 67
Reading: 0 Writing: 1 Waiting: 0

第一个就是当前活动的连接数

下面的三个数值分别是 处理连接数/创建握手数/处理请求数

嗯……文章中有什么不对或者不妥的地方欢迎提出来

【LOG】

2017.12.28 更新: http/stream节点参数

2018.01.06 更新: 补充说明worker_processes参数和

worker_connections参数


查看端口情况

netstat -tunlp

相关文章

  • 2018-05-04

    2018-05-04 先见集团 2018-05-04 00:35 · 字数 234 · 阅读 10 · 日记本 2...

  • 程序日记2018-05-04

    Centos7上卸载Mariadb数据库 查询所安装的MariaDB组件: [root@localhost log...

  • 2018-05-04

    ZFQ_dacf 2018-05-04· 字数 489· 阅读 64· 日记本 姓名:周富强 公司:厦门大科机械有...

  • 2018-05-04

    2018-05-04 49天《能量性格学~相处之道》情绪觉知日记 1.回放我在事件当中是什么情绪? 不爽。今天一个...

  • 2018-05-04

    2018-05-04 49天《能量性格学~相处之道》情绪觉知日记第7天 穆树勋简书作者 1.回放我在事件当中是什么...

  • 关于时间

    2018-05-04 import datetime nowTime=datetime.datetime.now(...

  • fs - 2018-05-04

    2018-05-04创建 fs.readFile(path[, options], callback) path ...

  • querystring - 2018-05-04

    2018-05-04创建 querystring.parse(str[, sep[, eq[, options]]...

  • path - 2018-05-04

    2018-05-04创建 path.basename(path[, ext]) path ext 可选的文件扩...

  • 解决 RabbitMQ 集群 Channel shutdown:

    具体错误信息: 2018-05-04 11:21:48.116 ERROR 60848 --- [.168.0.2...

网友评论

      本文标题:程序日记2018-05-04

      本文链接:https://www.haomeiwen.com/subject/xhtdrftx.html