centos7系统优化,nginx优化

系统优化

调整用户登录提示信息 /etc/motd
/etc/issue 和/etc/issue.net都是登陆系统前显示的欢迎信息
但是/etc/issue是本地终端登录时显示,而/etc/issue.net是远程登陆时显示的,且/etc/issue.net 不支持转义字符

yum install -y clamav clamav-data
clamscan -ri /oldboy/wordpress扫描病毒
freshclam更新病毒库

内核优化 /proc/sys/
net.ipv4.ip_forward = 1 是否开启内核转化
net.ipv4.icmp_echo_ignore_all=1 是否允许被ping
net.ipv4.tcp_tw_recycle=1 是否开启tcp回收功能
net.ipv4.tcp_tw_reuse=1 是否开启tcp重复利用
vm.swapiness=0 设置 系统是否优先使用物理内存数值越小优先使用物理内存

nginx安全优化

  • 修改nginx版本信息

./configure --prefix=/etc/nginx --with-http_ssl_module --with-http_stub_status_module --with-http_dav_module

[root@cvm ~]# sed -n '13p;14p;22p' /app/nginx-1.16.1/src/core/nginx.h
#define NGINX_VERSION      "1.16.1"
#define NGINX_VER          "nginx/" NGINX_VERSION
#define NGINX_VAR          "NGINX"
[root@cvm ~]# sed -n '49p' /app/nginx-1.16.1/src/http/ngx_http_header_filter_module.c 
static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
[root@cvm ~]# sed -n '36p' /app/nginx-1.16.1/src/http/ngx_http_special_response.c 
"
nginx
" CRLF server_tokens off;
  • 优化nginx上传文件限制client_max_body_size 100m;
    匹配上传文件目录的url,进行访问控制
  • 防盗链
    实现跨域访问
    add_header Access-Control-Allow-Origin 网址
    add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;允许的操作
    防止盗用静态资源
    valid_referers none blocked server_names
    if ($invalid_referer) {
    return 403;
    }
  • nginx目录设置 目录权限755 文件权限644
  • robot协议
    匹配http_user_agent
  • method请求方式限制
  • 普通用户管理,修改为比1024大的端口
  • 控制连接数和速率
  • 禁止通过IP地址访问
  • 配置错误页面
  • https

nginx性能检测工具tsar

tsar --nginx  -l  -i  1  -s time,qps,active #i间隔时间l持续监控s选择的字段
#--cpu --men
#/etc/profile
export NGX_TSAR_HOST=172.16.1.xxx
export NGX_TSAR_PORT=8080
export NGX_TSAR_URI=/nginx_status
grep -n mod_nginx /etc/tsar/tsar.conf
34 mod_nginx on
  • 修改进程数和cpu亲和
    vim /etc/nginx/nginx.conf
    worker_processes auto;
    worker_cpu_affinity auto;
    worker_rlimit_nofile 35535;
  • 使用epoll模型
    events {
    use epoll; #限制每个进程能处理多少个连接请求,10240x16
    worker_connections 10240; }
  • 优化单进程客户端连接数量
    #限制每个进程能处理多少个连接请求,10240x16
    worker_connections 10240;
  • 优化服务进程打开文件数
    vim /etc/security/limits.conf文件描述符修改
    root soft nofile 65535提醒
    root hard nofile 65535限制
    * soft nofile 25535文件数配置项
  • 使用高效传输文件方式
    静态文件读取高效
    sendfile on;
    提高网络传输效率
    tcp_nopush on;在sendfile开启的情况下
    提高网络传输的实时性
    tcp_nodelay on;和nopush相反
  • gzip压缩
gzip on;
gzip_min_length 1k; #设置大于1K才进行压缩
gzip_buffers 4 16k; #设置压缩缓存
#gzip_http_version 1.0;
gzip_comp_level 2; #压缩级别 数字越大 压缩率(占用空间)越小占用CPU越多
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php  ;
#哪些类型的文件 需要进行压缩
  • 浏览器缓存
  • 代理缓存
[root@proxy /etc/nginx/conf.d]# vim proxy.conf
# level=1:2缓存的层次结构为2层
# keys_zone缓存空间名称为code_cache:10m,大小为10兆
# max_size=10g最大文件缓存为10G,超过10GNginx的裁判机制会剔除不经常被访问的缓存
# inactive=60m该缓存60分钟内没被访问就把清理掉
# use_temp_path=off会生成一个临时的.tmp缓存,会和自己定义的/soft/cache缓存冲突,导致性能下降,先关闭掉

proxy_cache_path /soft/cache level=1:2 keys_zone=code_cache:10m max_size=10g inactive=60m use_temp_path=off;

upstream cache {
        server 192.168.1.17:8081;
        server 192.168.1.17:8082;
        server 192.168.1.17:8083;
}
	if ($request_uri ~ ^/(url3|login|register|passwd)) {
			set $cookie_nocache 1;
	}这四个路径下的资源不缓存
server {
        listen 80;
        location / {
                proxy_pass http://cache;
                proxy_cache code_cache;
                #proxy_no_cache $cookie_nocache $arg_nocache $arg_comment;
                #proxy_no_cache $http_pargma $http_authorization;
                # 状态码为200 304的缓存12小时
                proxy_cache_valid 200 304 12h;
                # 其余的缓存10分钟
                proxy_cache_valid any 10m;
                # response响应的头信息中定义缓存的状态(有没有命中)
                add_header Nginx-Cache "$upstream_cache_status";
        }
}

  • 连接数量不多时开启会降低负载
Syntax: 	multi_accept on | off;
Default:    multi_accept off;
Context:    events

你可能感兴趣的:(centos7系统优化,nginx优化)