热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

.netcore微服务_新服务器需要做什么,这篇日常笔记希望对你有用

登录过没有主机名的服务器,也登录过防火墙都没有开启的服务器,登录过直接上去就是root用户的服务器,也登录过重启之后没有挂载磁盘的服务器&

登录过没有主机名的服务器,也登录过防火墙都没有开启的服务器,登录过直接上去就是root用户的服务器,也登录过重启之后没有挂载磁盘的服务器,更见过重启之后IP地址变掉导致无法登录的服务器。我时时在想,明明很容易就能避免未来维护的麻烦,为什么还会出现这么多乱七八糟的问题, 是运维人员无意识,还是不负责,难搞哦~~~

92afddbaede88dfa226eb084ff36697a.png

通用的一些规范
  1. 设置主机名(hostname),主机名一定要便于识别服务器的使用目的

[root@mysql ~]# hostnamectl set-hostname mysql

2.磁盘分区的挂载一定要写入配置文件,然后使用mount -a命令。见过许多配置文件写错导致无法服务器启动故障的,使用mount -a 可以避免此问题

[root@mysql ~]# cat /etc/fstab/dev/sdb                                /data   ext3    defaults        0 0[root@mysql ~]# mount -a[root@mysql ~]# df -h

3.关闭Selinux, 虽然Selinux是安全的一把利器,但是因为它学习成本比较大,并且后续维护麻烦,所以一般都是直接关闭的。

[root@mysql ~]# cat /etc/selinux/configSELINUX=disabledSELINUXTYPE=targeted

4.如果服务器为动态IP, 则一定要手动设置成静态IP,避免IP变更导致的各服务的配置文件的部分变更

5.设置正确的时区

列出所有时区timedatectl list-timezones设置时区timedatectl set-timezone Asia/Shanghai

6.设置自动校验服务器时间

timedatectl set-ntp yes

7.安装基础软件,便于以后的调试,如wget,curl lrzsz, bind-utils, strace

41a989bf46c1334736a7c3c955766398.png

安全上的一点建议

1.新创建一个普通用户,并赋予sudo权限

[root@mysql ~]# useradd xcc[root@mysql ~]# visudoxcc ALL=(ALL)   ALL

2.禁用root用户登录

[root@mysql ~]# cat /etc/ssh/sshd_configPermitRootLogin no

3.配置私钥登录,尽量不要使用权限密码的登录方式

[root@mysql ~]# cat /etc/ssh/sshd_configPubkeyAuthentication yes

注: 根据需求判断是否需要禁用帐户密码登录

4.开启防火墙,只允许必要的端口访问,如22,80等

[root@mysql ~]# systemctl start firewalld

fd035224229445421e6f3c6e7e3a2388.png

通用的性能优化

1.修改最大文件数

[root@mysql ~]# cat  /etc/security/limits.conf*               soft    nofile          65535*               hard    nofile          65535

2.添加swap虚拟内存

[root@mysql ~]# dd if=/dev/zero of=/swap bs=1M count=512[root@mysql ~]# mkswap /swap[root@mysql ~]# swapon /swap[root@mysql ~]# free -m

3.修根据需求改内核参数

内核参数的修改需要根据需求来调整,以下为参数解释

net.ipv4.tcp_synCOOKIEs = 1表示开启SYN COOKIEs。当出现SYN等待队列溢出时,启用COOKIEs来处理,可防范少量SYN攻击,默认为0,表示关闭;net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;net.ipv4.tcp_tw_recycle = 1表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。net.ipv4.tcp_fin_timeout = 30表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。net.ipv4.tcp_keepalive_time = 1200表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时net.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 3上面两行意思是,如果probe 3次(每次30秒)不成功,内核才彻底放弃。原来的默认值为,显然太大:tcp_keepalive_time = 7200 seconds (2 hours)tcp_keepalive_probes = 9tcp_keepalive_intvl = 75 secondsnet.ipv4.ip_local_port_range = 1024 65000表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。net.ipv4.tcp_max_syn_backlog = 8192表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。net.ipv4.netdev_max_backlog = 1000表示进入包的最大设备队列,默认300,改大net.core.tcp_max_tw_buckets = 5000表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为 5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效果却不大。此项参数 可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。另外可以参考优化内核配置:/proc/sys/net/core/wmem_max 最大socket写buffer,可参考的优化值:873200/proc/sys/net/core/rmem_max 最大socket读buffer,可参考的优化值:873200/proc/sys/net/ipv4/tcp_wmem TCP写buffer,可参考的优化值: 8192 436600 873200/proc/sys/net/ipv4/tcp_rmem TCP读buffer,可参考的优化值: 32768 436600 873200/proc/sys/net/ipv4/tcp_mem同样有3个值,意思是:net.ipv4.tcp_mem[/proc/sys/net/core/somaxconnlisten()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.可调整到256./proc/sys/net/core/optmem_maxsocket buffer的最大初始化值,默认10K./proc/sys/net/ipv4/tcp_retries2TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.还有一个重要参数:net.core.somaxconn表示socket监听(listen)的backlog上限,是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。该参数默认值128。在高突发的请求中可能会导致链接超时或者触发重传。比如nginx 定义NGX_LISTEN_BACKLOG默认到511, 却由于我们参数未曾优化会限制到128,显然这里限制了nginx的backlog,需要优化net.core.somaxconn = 32768

以下是平时用的一些范例

net.ipv4.tcp_max_tw_buckets = 1000000net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 300net.ipv4.tcp_keepalive_probes = 3net.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_synCOOKIEs = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.ip_local_port_range = 5000 65000net.ipv4.tcp_mem = 786432 1048576 1572864net.core.wmem_max = 873200net.core.rmem_max = 873200net.ipv4.tcp_wmem = 8192 436600 873200net.ipv4.tcp_rmem = 32768 436600 873200net.core.somaxconn = 10240net.core.netdev_max_backlog = 20480net.ipv4.tcp_max_syn_backlog = 20480net.ipv4.tcp_retries2 = 5net.ipv4.conf.lo.arp_ignore = 0net.ipv4.conf.lo.arp_announce = 0net.ipv4.conf.all.arp_ignore = 0net.ipv4.conf.all.arp_announce = 0net.ipv4.neigh.default.gc_thresh1 = 10240net.ipv4.neigh.default.gc_thresh2 = 40960



推荐阅读
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • Redis的默认端口、数据库使用和多端口配置
    本文介绍了Redis的默认端口、数据库使用和多端口配置的方法。通过选择不同的数据库和使用flushdb命令可以实现对不同数据库的访问和清除数据。同时,本文还介绍了在同一台机器上启用多个Redis实例的方法,并讨论了配置认证密码的步骤和注意事项。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
author-avatar
dongtiankzh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有