Centos7.4 安装使用nginx1.8.1及常见配置记录

简介: nginx1.8.1常见配置及使用记录

一.下载并安装nginx1.8.1:
1.1 nginx官网下载稳定版本nginx1.81:
http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.8.1-1.el7.ngx.x86_64.rpm
其中,预编译好的rpm包内的modules及配置,已经可以满足我们的日常使用需求。
1.2 安装有可能需要到的依赖包:
yum install openssl-devel,pcre-devel,zlib-devel
安装nginx1.8.1:
rpm -Uvh nginx-1.8.1-1.el7.ngx.x86_64.rpm
安装完后的默认配置文件在/etc/nginx/目录下
1.3 测试nginx是否安装成功:
systemctl start nginx
浏览器上输入服务器ip:port(端口默认为80)
显示欢迎信息则为成功安装:
1

二、nginx的配置详细记录:
1.1 nginx主要的配置文件分为三个模块:
1.nginx核心配置模块
2.httpd功能模块
3.第三方模块
1.2 nginx的核心段落配置:
编辑查看/etc/nginx/nginx.conf文件:
2
其中:
1、user nginx; ####表示启动nginx的用户
2、worker_processes auto; #####表示启动几个worker进程,auto为自动。一般这个值设定为与服务器的cpu核心数一样或者比cpu核心数少1.查看cpu核心使用lscpu命令。

3、(nginx进程与cpu亲和性配置) work_cpu_affinity 0001 0010 0100 1000;###该值表示将启动的worker_processes绑定在指定的cpu上面,可以避免因cpu切换调度时浪费额外的切换性能。该值设定可以提高nginx的处理性能。其中 0001表示将第一个worker_process绑定在第一个cpu上,0010表示将第二个woer_process绑定在第二个cpu上,以此类推.假如有8个cpu核心则为,00000001,00000010 等等。

4、work_priority -20;########woker_process的优先级,默认为0
范围为-20~19之间。值越小,优先级越高
配置完后可使用命令 ps axo command,pid,psr,ni 查看与nginx进程相关的信息:3
14193为当前pid,0表示为该进程运行在第一颗cpu核心上。这里我的阿里云为单cpu的,所以进程都是运行在第1颗cpu上。在真实生产机器中,通过worker_processes与work_cpu_affinity配置后可通过这行命令查看到将woker_processes绑定在指定cpu上。
-20为当前进程优先级.

5、worker_rlimit_nofile 5096; ####单个worker进程最大能打开的文件数,如果有4个worker_processes则最大文件打开数为4X5096

6、error_log /var/log/nginx/error.log warn; ###错误日志输出.
这里也可以使用error_log syslog:server=ip(syslog服务器) warn;这种形式将error_log发送到指定的rsyslog服务器进行集中管理.
日志级别由debug ,info,notice,warn,error,crit,alert,emerg默认为warn.
7、pid /var/run/nginx.pid; ####指定pid文件
以上几个就是常用到的nginx核心模块中配置项。修改/etc/nginx/nginx.conf保存退出后可以使用nginx -t 测试是否有语法错误。其中nginx的配置文件必须是一个配置指令跟一个或多个值value以分号;结尾(分号必不可少!!!)
使用nginx -h 获取命令帮助:
常用命令有nginx -s reload ,重新读取配置.
nginx -t ,测试配置文件是否有语法错误
4

二、events上下文相关配置
5
1、worker_connections 1024; ###单个worker进程能处理的最大并发响应数,可以根据需要调整为5096。受worker_rlimit_nofile的大小限制
2、use epoll;###表示worker处理请求时采用epoll方法,默认为epoll
3、accept_mutex on;####启用时表示让多个worker进程轮流地、有序地处理请求,默认为on

三、http上下文相关配置:
1、server {...} 上下文相关配置(定义虚拟主机):
6

2、listen 配置:
一般为listen+端口:listen 80; 如果服务器有多个网卡,也可以指定ip+端口,如listen ip:80的形式。也可以在本地进程间通信时,listen本地的某一个unix套接字文件.
3、server_name name:
指明当前server的主机名,使用方法为server_name www.cr.com mail.cr.com ... server_name后可跟一个或多个空白分割的主机名,也支持使用通配机制,如*.cr.com ,也支持使用正则表达式匹配,如
~^.*.cr.crom$ server_name的匹配优先级为:
a.精确匹配,如www.cr.com
b.左侧通配符匹配,如*.cr.com
c.右侧通配符匹配,如www.cr.*
d.正则表达式匹配,如~^..com..$

3、root path:可用在http,server,location,if等上下文中:
表示设置web资源映射,用于指明用户请求的url所对应的本地文件系统上的资源所在目录.
8

4、sendfile on;##开启sendfile功能
5、tcp_nodelay on;####对月keepalived模式下的连接是否启用tcp_nodelay选项,应开启。表示不会将单个很小的数据文件延迟响应。
6、send_timeout;####向客户端发送响应报文的超时时长,特指2次写操作的时间间隔
7、keepalive_requests 100;###在一次长连接中所允许请求的最大资源数
8、keepalive_timeout 120;####设定保持连接的超时时长,0表示禁用长连接.
9、location [=|~|~*|^~] uri :
9
根据用户请求的URI来匹配定义的location,匹配到时,这个请求将会被location块中的配置处理.
a、= 表示精确匹配,如 location =/404.html ,此匹配法则优先度最高
b、 ^~ 表示做左侧匹配,如 location ^~ /bbs/ , 这种匹配方式优先度第二
c、 ~ 区分大小写匹配,后跟一个模式
d、 ~ 不区分大小写匹配正则表达式,如 location ~ .(jpg|png|jepg) {

    root /web/images;
    }

e、为不跟任何符号的匹配机制,优先度最低,如 location / {}
10、alias 定义路径别名
11、index index.html;####设置默认主页
12、error_page :
根据用户请求资源的http状态响应码实现错误重定向,如
error_page 500 502 503 504 /50x.html;

location = /50x.html {
    root   /usr/share/nginx/html;
}

当状态码是500时,请求的资源将会变为/50x.html,再根据location中定义的root 路径进行响应

13、open_file_cache max=1024 inactive=1d;###打开最大的缓存文件及过期时间。max表示可缓存的缓存项上限,inactive表示缓存项的超时时长,超过这个时间没有缓存命中时,cache manager将根据LRU算法清理缓存.
14、open_file_cache_valid 300s;####缓存项有效性的检查频率,默认为60s;
15、limit_rate 20480;###限制响应给客户端的传输速率,单位为字节/秒,此处表示20K/s
四、实现基于basic机制进行用户访问认证
10
1、在某个location上下文内定义访问控制:
auth_basic "admin";###表示当用于请求到/admin时的提示字符串
auth_basic_user_file /etc/nginx/.ngxpasswd;###指明认证时的密码文件
2、使用htpasswd -c -m /etc/nginx/.ngxpasswd cr创建认证用户cr:
其中htpasswd是httpd自带的命令,需要先安装httpd.-c 表示第一次创建时指定的选项,-m 指定md5加密密码.创建完成重读配置即可:
11
再次访问时,输入使用htpasswd创建的用户与密码即可访问

3、stub_status模块用于输出nginx的基本状态信息:
12
只需要在一个location上下文中加入stub_status;即可,也可以结合auth_basic访问控制来限定获取该状态信息.
基本nginx状态信息如下:
13

Active connections: 2 ###表示处于活动状态的连接数
server accepts handled requests ###服务器已经处理的请求
205 205 215 ###第一个数字表示已经接受的客户端连接数,第二个数字表示已经处理的客户端连接数,第三个数字表示所有客户端发起的请求总数。

Reading: 0 Writing: 1 Waiting: 1 ###Reading表示在处于处理客户端请求首部的连接数,Writing 表示正处于向客户端发响应报文的连接数,Waiting 表示处于等待客户端发出请求的空闲连接数,该值过大有可能为设置的keepalive_timeout过大

目录
相关文章
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
285 0
|
2月前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
96 4
|
16天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
28天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
145 1
nginx配置反向代理404问题
|
13天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
65 1
|
2月前
|
编解码 Ubuntu 应用服务中间件
Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测)
本文介绍了在NVIDIA Jetson Nano上配置FFmpeg和Nginx的步骤,包括安装、配置和自启动设置。
167 1
Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测)
|
1月前
|
缓存 负载均衡 应用服务中间件
Nginx配置
【10月更文挑战第22天】在实际配置 Nginx 时,需要根据具体的需求和环境进行调整和优化。同时,还需要注意配置文件的语法正确性和安全性。
48 7
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
87 2
|
2月前
|
前端开发 JavaScript 应用服务中间件
终极 Nginx 配置指南
本文介绍了Nginx的基本配置及其优化方法。首先,通过删除注释简化了Nginx的默认配置文件,使其更易于理解。接着,文章将Nginx配置文件分为全局块、events块和http块三部分进行详细解释。此外,还提供了如何快速上线网站、解决前端history模式404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离的具体配置示例。最后,附上了Nginx的基础命令,包括安装、启动、重启和关闭等操作。