配置记录怎么写

配置记录怎么写,第1张

nginx的记录配置心得

以下是我带给你的NGINX的一些记录,因为我可能要换工作了。面试的时候我会问他们,总有人问我他要给公司配置NGINX,我就记下来。

一、nginx的安装

安装前的一些准备工作

[root@taotao2016 ~]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core)  [root@taotao2016 ~]#

YUMpcrepcre-DEVEL-Y#先安装PCRE,它是nginx重写模块使用的,必须安装。

安装yumopenssl-developenssl#这个也需要yum直接安装在我用的7系统上。

添加usernginx-s/sbin/nologin-m#来建立ningx用户

开始安装。

Nginx-1.11.3.tar.gz下载地址

。/configure-user=nginx-group=nginx-prefix=/usr/local/nginx-1.11.3-with-http_stub_status_module-with-http_SSI_module#安装目录加版本号

制造和销售。&进行安装

这就完成了安装。

[root@taotao2016 nginx-1.11.3]# cd /usr/local/ [root@taotao2016 local]# ls bin  etc  games  include  lib  lib64  libexec  nginx-1.11.3  python3  sbin  share  src [root@taotao2016 local]# cd nginx-1.11.3/ [root@taotao2016 nginx-1.11.3]# ls conf  html  logs  sbin [root@taotao2016 nginx-1.11.3]# cd sbin/ [root@taotao2016 sbin]# ls nginx [root@taotao2016 sbin]# ./nginx -t nginx: the configuration file /usr/local/nginx-1.11.3/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx-1.11.3/conf/nginx.conf test is successful 直接执行bin下面的nginx就启动了服务 [root@taotao2016 sbin]# netstat -anlpt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name     tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4801/nginx: master

尝试访问:

体验:

Ln-snginx-1.11.3nginx#建立软连接后,升级然后直接将nginx指向新版本。

#安装时请参考其他模块的官方文档。

二:配置重写
nginx

该模块由安装过程中使用的pcre软件提供。

Rewrite指定语法;重写regex替换[flag]应用程序位置服务器,位置,如果

此指令根据表达式重定向URI,或者修改字符串。根据配置文件中的顺序执行指令。请注意,重写表达式仅对相对路径有效。如果要配对主机名,应该使用If语句,示例如下:

先说以下对flag的描述:

1.last相当于apache中的[L]标记,表示重写。
2.break该规则匹配完成后,匹配将终止,后面的规则将不再匹配。
3.redirect返回302临时重定向,跳转后浏览器地址会显示URL地址。
4.永久返回301永久重定向,浏览器地址跳转后会显示URL地址。

例:重写/(。*)http://www.daxia.help/永久居民;#rewrite是regex部分/(。*)的关键字。这是一个正则表达式,表示匹配。于是,匹配成功后,跳转到后面替换的部分,也就是www.daxia.help这个域名就是简单的参考前面的内容写的(),永久是301永久跳转,告诉搜索引擎。

Http://www.linuxidc.com/Linux/2014-01/95493.htm这里有详细的配置。我今天有点困。改天我会补充更多的细节。

三:日志配置

#log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'

#'$status$body_bytes_sent"$http_referer"'

#'"$http_user_agent""$http_x_forwarded_for"';

Log_format是定义日志格式的关键字。主要是标签。remote_addr是记录访问客户端的地址。远程用户是远程访问客户端的名称。time_local是日期。请求是http的起始行的信息。

http的状态码,比如200404,body-bytes_set是服务器发送给客户端的正文字节数。http_referer记录这个访问来自那个链接,用来设置防盗链

Http_user_agent用于记录浏览器信息,如手机或谷歌Chrome360浏览器等。http_x_forwarded_for用于设置这个录音客户端在有代理时的真实地址。

access_log配置语法:access_logpath[format[buffer=size[flush=time]][if=condition];access_log路径格式gzip[=level][buffer=size][flush=time][if=condition];access_logsyslog:server=address[paarmeter=value][format[if=condition]];

Buffer=size是存储访问日志的缓冲区大小,flush=time是日志刷新到硬盘的时间,gzip[level]表示压缩级别[if=condition]表示其他条件,一般不需要配置。

access_logoff是关闭日志记录。日志记录可应用于http服务器位置\ifinlocaton\limit_except。

示例:access_loglogs/access_www.logmaingzipbuffer=32kflush=5s;

Http://www.linuxidc.com/Linux/2014-12/110989.htm原木切割

探视日:

#!bin/sh Dateformat=`date +%Y%m%d` Basedir="/usr/local/nginx" Nginxlogdir="$Basedir/logs" Logname="access_www" [ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1 [ -f ${Logname}.log ] || exit 1 /bin/mv ${Logname}.log ${Dateformat}_${Logname}.log $Basedir/sbin/nginx -s reload ##就是把日志文件移动到另外个文件在重启加载下nginx的配置 重新生成日志 最后把脚本放到crontab里面定时执行就行了

四。位置配置

Ngxlocation语法

基本语法:location[=|||~*|]/uri/{…}

=完全匹配。如果该查询匹配,搜索将停止,请求将立即得到处理。

~区分大小写(正则表达式可用)

~*用于不区分大小写的匹配(正则表达式可用)

!~还有!~*区分大小写的不匹配和不区分大小写的不匹配。

~如果对正则字符串使用这个前缀,告诉nginx如果路径匹配就不要测试正则表达式。

http://www.cnblogs.com/lidabo/p/4169396.html

http://www.linuxidc.com/Linux/2015-06/119398.htm

五:nginx的一些简单优化

删除版本信息:

将server_tokensoff添加到http标记中;或者打开和关闭默认设置。

如果修改源代码的配置,在nginx-1.11.3/src/core/nginx.h中。

/*  * Copyright (C) Igor Sysoev  * Copyright (C) Nginx, Inc.  */ #ifndef _NGINX_H_INCLUDED_ #define _NGINX_H_INCLUDED_ #define nginx_version      1011003 #define NGINX_VERSION      "1.11.3"     把这里修改了就行修改成自己喜欢的版本 2.22.6比如 #define NGINX_VER          "nginx/" NGINX_VERSION #ifdef NGX_BUILD #define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")" #else #define NGINX_VER_BUILD    NGINX_VER #endif #define NGINX_VAR          "NGINX"   ###这里也能修改成其他软件比如叫小芳软件 xiaofang #define NGX_OLDPID_EXT     ".oldbin" #endif /* _NGINX_H_INCLUDED_ */

还有文件nginx-1.11.3/src/http/ngx_http_header_filter_module.c。

staticcharngx_http_Server_string[]="Server:nginx"CRLF;##将这行中的nginx改为您自己的名字

最后一个文件是ngx_http_special_response.c也在上面的目录:

“<hr><中心>NGINX_VER"<;/center>CRLF#此处改为“NGINX_VER(www.daxia.help)"<;/center>换行符

“<hr><中心>nginx</center>CRLF#替换为“换行符

然后重新编译安装okl。


修改默认的nobody用户,使用你知道的nginx。


优化nginx的工作进程数量:

worker_process1;指定nginx打开的进程数一般是cpu核数的*(1-2)。


优化不同nginx进程与不同CPU的绑定;

例如:

工作进程4;

worker_CPU_affinity0001001001001000;

可以查看官方说明。


nginx加工模型的优化:

一般linux选择epoll,BSD系统使用kqueue看官网说明。

调整nginx单个进程打开的最大客户端连接数。

worker_connections20480

#Default1024公式Max_client=worker_processes*worker_connections进程的最大连接数受linux系统中打开文件的最大数量限制ulimit-HSn65535


配置nginx工作进程的最大打开文件数。

worker_rlimit_文件号;

worker_rlimit_nofile65535ulimit-HSn设置是相同的。


优化服务器域名的哈希表大小:

服务器名称哈希桶大小64;

服务器名称哈希最大大小128;


打开高效文件传输:

打开发送文件


优化连接参数。调整超时。

keepalive_timeout75s系统默认值

上传文件大小的设置:

client_max_body_size8m


这个先困了!








欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/778422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存