博客新站规划之(整体规划)

第一部分:系统优化与安全部分

1:开启ssh密钥登录,并禁用ssh密码认证,同时修改其ssh端口为 "不便透露"
2:为系统创建普通账户 xxx ,禁止root直接登录,运行普通用户使用key登录
3:对历史命令添加时间戳
    vi /etc/profile     #将下面内容添加进去
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"
HISTSIZE=1000

4:修改系统时区为上海
    cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

5:锁定apache,mysql,nginx,ftp,games,nobody,postfix,ntp等无需登录的用户

6:修改linux系统打开最大文件数(修改如下文件,添加下面内容:表示修改为65536,重启后 ulimit -n 可以验证)
    vi /etc/security/limits.conf
*               soft   nofile       65536
*               hard   nofile       65536

第二部分:应用程序部署与安全配置部分

7:mysql5.7的安装,参看https://wsfnk.com/archives/49.html
8:将mysql端口改成13522,并只监听127.0.0.1,且root不能远程管理,并创建数据库sjk普通账户,管理博客boke数据库

cat /etc/my.cnf

# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
port=13522
bind-address=127.0.0.1
datadir=/web-boke/mysql-data
socket=/web-boke/mysql-data/mysql.sock
log-error=/web-boke/mysql-data/mysqld.log
pid-file=/web-boke/mysql-data/mysqld.pid
symbolic-links=0
character-set-server=utf8

#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/web-boke/mysql-data/mysql.sock
default-character-set=utf8
#
[client]
socket=/web-boke/mysql-data/mysql.sock
default-character-set=utf8

10:安装php及php-fpm

#安装php56
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-gd
yum install --enablerepo=remi --enablerepo=remi-php56 php-fpm

#安装php74
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install php74-php-dom php74-php-gd.x86_64 php74-php-mysqlnd.x86_64 php74-php php74-php-pecl-xhprof php74-php-gd php74-php-phpunit-PHPUnit 
yum install php74-php-pecl-xdebug php74-php-opcache php74-php-devel php74-php-mbstring php74-php-mcrypt php74-php-fpm.x86_64
systemctl start php74-php-fpm.service
systemctl enable php74-php-fpm.service

11:对php参数进行优化,将php.ini最大上传限制改成8M,时区改成上海,关闭版本显示

    vi /etc/php.ini
    #vi /etc/opt/remi/php74/php.ini

date.timezone = "Asia/Shanghai"
upload_max_filesize = 8m
expose_php = Off

12:php-fpm优化,将其改成执行200次php请求后,将内存释放给操作系统,并将进程端口改成13521,并加入日志(小内存vps不优化基本跑几天就死了)

#php54版本
    vi /etc/php-fpm.d/www.conf

#pm = dynamic          #这是默认的设置,有static和dynamic
listen = 127.0.0.1:13521
pm.max_children = 24            #运行创建的最大php-fpm子进程数量
pm.start_servers = 16           # 动态模式下,起始php-fpm进程数量
pm.min_spare_servers =12        #动态方式下,服务器空闲时最小php-fpm进程数量
pm.max_spare_servers = 24       #动态方式下,服务器空闲时最大php-fpm进程数量
pm.max_requests = 200           #php-fpmphp-fpm工作进程处理完多少请求后自动重启,防止系统不释放内存,导致内存耗尽
error_log = /web-boke/applog/php-fpm/error.log

#remi的php74版本
    vi /etc/opt/remi/php74/php-fpm.d/www.conf

#pm = dynamic
listen = 127.0.0.1:13521
pm.max_children = 24
pm.start_servers = 16
pm.min_spare_servers =12
pm.max_spare_servers = 24
pm.max_requests = 200
php_admin_value[error_log] = /web-boke/applog/php-fpm/error.log

14:按天对nginx的日志进行分割

1、创建文件并赋予执行权限
    touch /web-boke/nginx/conf/auto_nginx_log_shard.sh
    chmod +x /web-boke/nginx/conf/auto_nginx_log_shard.sh

2、写分割脚本内容
    cat /web-boke/nginx/conf/auto_nginx_log_shard.sh
#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#Nginx日志文件所在目录
LOG_PATH=/web-boke/applog/nginx/
#获取昨天的日期
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#获取pid文件路径
PID=/web-boke/nginx/logs/nginx.pid
#分割日志
mv ${LOG_PATH}access.log ${LOG_PATH}${YESTERDAY}_access.log
mv ${LOG_PATH}error.log ${LOG_PATH}${YESTERDAY}_error.log
#向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat ${PID}`

3、写入定时任务
    crontab -e
00 00 * * * /bin/bash /web-boke/nginx/conf/auto_nginx_log_shard.sh

第三部分:监控与分析部分
15:每周校验网站/web-boke/html代码的md5值

cat /home/wsfnk/md5_check.sh

#!/bin/bash
find /web-boke/html -name "*.*" |while read line
do
md5sum $line >> boke-md5-check-date "+%Y-%m-%d"
done

16:配置filebeat,将nginx日志发送到ELK分析平台上

#filebeat安装
    #配置yum源(选择版本号为5的,因为版本6的document_type字段好像不能使用了)
    vi /etc/yum.repos.d/filebeat.repo

[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

    #安装filebeat5
    yum install filebeat -y

    #配置filebeat
    vi /etc/filebeat/filebeat.yml

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/nginx/access.log
  document_type: wsfnk-nginx-access
#------------ Logstash output -----------------
output.logstash:
  # The Logstash hosts
  hosts: ["223.84.153.80:5044"]

    #启动
    systemctl start filebeat
    systemctl enable filebeat
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/54.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/5/7作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???