Nginx是什么?
开源且高性能、可靠的HTTP中间件、代理服务。
类似于nginx的还有哪些?
HTTPD-apache基金会、IIS-微软、GWS-Google
为什么使用nginx?
-
IO多路复用epoll
-
轻量级(功能模块少、代码模块化)
-
CPU亲和:把CPU核心和nginx工作进程绑定的方式,把每个worker进程固定在一个cpu上执行,减少CPU切换的cache miss,以获取最好的性能
-
sendfile(处理静态资源高效)
Nginx的安装(基于yum源安装)
1、访问nginx官网,http://nginx.org/en/linux_packages.html
2、选择stable version项,进入http://nginx.org/en/linux_packages.html#stable,按照提示使用yum源安装nginx
3、执行命令 :vim /etc/yum.repos.d/nginx.repo,输入:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
注意:把OS替换成"rhel"或者"centos",把OSRELEASE替换成"6"或者"7",这两个信息根据你自己的linux系统环境来写。
具体的看这边:
4、保存,按下Esc,快捷键Shift+zz,直接保存刚才修改的文件
5、使用命令yum list |grep nginx 查看最新稳定nginx版本信息
6、使用命令yum -y install nginx 安装nginx
7、使用命令nginx -v和nginx -V查看安装好的nginx详细信息,比如我这里安装的nginx -V
8、执行命令:rpm -ql nginx 查看nginx的安装目录信息
路径 | 类型 | 作用 |
/etc/logrotate.d/nginx | 配置文件 | nginx日志轮转,用于logrotate服务的日志切割,比如按天归类日志 |
/etc/nginx /etc/nginx/nginx.conf /etc/nginx/conf.d /etc/nginx/conf.d/default.conf | 目录、配置文件 | nginx的主配置文件 |
/etc/nginx/fastcgi_params /etc/nginx/scgi_params /etc/nginx/uwsgi_params | 配置文件 | cgi相关,fastcgi配置 |
/etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/win-utf | 配置文件 | 编码转换映射转化文件 |
/etc/nginx/mime.types | 配置文件 | 设置http协议的Content-Type与扩展名对应关系 |
/etc/sysconfig/nginx /etc/sysconfig/nginx-debug | 配置文件 | 配置系统守护进程管理器管理方式 |
/usr/lib64/nginx/modules /etc/nginx/modules | 目录 | nginx模块目录 |
/usr/sbin/nginx /usr/sbin/nginx-debug | 命令 | nginx服务的启动管理终端命令 |
/usr/share/doc/nginx-1.14.0 /usr/share/doc/nginx-1.14.0/COPYRIGHT /usr/share/man/man8/nginx.8.gz | 目录 | nginx使用帮助文档 |
/var/cache/nginx | 目录 | nginx缓存目录 |
/var/log/nginx | 目录 | nginx日志目录 |
1、安装好后的nginx会自动加入系统服务
2、nginx -t -c /etc/nginx/nginx.conf命令测试nginx配置文件语法是否正确
3、直接输入命令:nginx,便可以启动nginx
4、nginx -t命令可以直接查看nginx配置文件路径及其语法是否正确
Nginx基础配置文件
首先打开nginx配置文件,cat /etc/nginx/nginx.conf,查看nginx默认的配置文件如下:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
user | nginx的使用用户,不建议设置为root |
worker_processes | nginx的工作进程数,建议设置为系统CPU数即可 |
error_log | nginx的错误日志 |
pid | nginx启动时的进程id |
worker_connnections | 每个进程的最大并发连接数,1024是默认,可以根据需求调大,我们项目中调节为20480 |
include mime.types | 设定mime类型 |
default_type | ~ |
log_format | nginx日志输出格式 |
access_log | nginx日志存放路径 |
sendfile | 系统调用,建议开启,nginx的优势之一 |
tcp_nopush | 数据包达到最大时一次性发送,与tcp_nodelay互斥,只有在sendfile开启时才生效 |
keepalive_timeout | 请求会话超时时间,默认60s |
gzip | 压缩请求的响应信息,默认关闭 |
include file | 生效的nginx配置信息,默认在/etc/nginx/conf.d/目录下以.conf结尾的,一般会对nginx配置文件分类管理,便于管理 |
nginx的配置点很多,建议按照模块来看,在官网上都有详细的说明。http://nginx.org/en/docs/