nginx相关文件及配置文件详解

nginx介绍

nginx简述

Nginx是一个开源且高性能、可靠的Http Web服务、代理服务。

开源: 直接获取源代码

高性能: 支持海量并发

可靠: 服务稳定

# 动态服务器(调用动态请求,调用数据库)
tomcat
resin
php
weblogic
jboss

# 静态服务器(没有办法直接连接数据库)
nginx
apache
iis
lighttpd
tengine
openresty-nginx

nginx和Apache区别

# 1.模型不一致
- nginx采用Epool网络模型,Apache采用Select模型
- select:每当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下
- Epool:每当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制

# 2.nginx的优点
- 轻量级,同样起web服务,比apache占用很少的资源
- 行并发,nginx处理请求是异步非阻塞,而apache则是非阻塞型,在高并发下nginx能保持低资源低消耗高性能
- 高度模块化的设计,编写模块相对简单,功能模块少
- 社区活跃,各种高性能模块出品迅速
- 代码模块化(易读,便于二次开发,对于开发人员非常友好)
- 互联网公司选择使用nginx
- 适合主流架构趋势,微服务,云架构,中间层
- 统一技术栈,降低维护成本,降低技术跟新成本

# 3.apache相对nginx的优点
- rewrite,比nginx的rewrite强大
- 模块超多,基本想到的都可以找到
- 少bug,nginx的bug相对较多
- 超稳定

# 4. 存在理由
一般来说,需要性能的web服务,用nginx,如果不需要性能只求稳定,那就用apache,后者的各种功能模块实现得比前者强,例如ssl的模块就比前者好,可配置项多。这里需要注意一点,epoll(freebsd上都是kqueue)网络IO模型是nginx处理性能高的根本理由,但并不是所有情况下epoll大获全胜,如果本身提供静态服务的就只有几个寥寥几个文件,apache的select模型或许比epoll更高性能,当然,这只是根据网络io模型的原理作的假设,真正的应用还需要实测了再说的。

nginx典型应用场景

YBh2f1.md.png

nginx安装及参数

# nginx的安装方式
- 编译    (1.版本随意 2.安装复杂 3.升级繁琐 4.规范 5.便于管理)
- epel仓库 (1.版本较低 2.安装简单 3.配置不易读)
- 官方仓库 (1.版本较新 2.安装简单 3.配置易读)

# 所需依赖
[root@web ~]# yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree

# 官方yum源
[root@web ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

# nginx版本检查
nginx -v

# nginx编译参数
nginx -V

# 启停方式
- 启动
	[root@zls ~]# /usr/sbin/nginx
	[root@zls ~]# systemctl start nginx
- 停止
	[root@zls ~]# /usr/sbin/nginx -s stop
	[root@zls ~]# systemctl stop nginx
- 重启
	[root@zls ~]# systemctl restart nginx
- 重载
	[root@zls ~]# /usr/sbin/nginx -s reload
	[root@zls ~]# systemctl reload nginx

nginx安装

  • 1 .修改默认yum源为官方源TP

    YBhyTJ.png

  • 2.安装nginx

YBhck9.png

  • 3.启动服务

YBhgYR.md.png

nginx相关文件介绍

# rpm -ql 查看整体目录结构及对应功能

###############主配置文件
/etc/nginx/nginx.conf										#主配置文件
/etc/nginx/conf.d/default.conf								 #默认网站配置文件

###############nginx代理相关参数文件
/etc/nginx/fastcgi_params									 #php代理文件
/etc/nginx/scgi_params										 #AJAX前后分离
/etc/nginx/uwsgi_params										 #Python代理文件

###############nginx编码相关参数文件
/etc/nginx/win-utf											#Nginx编码转换映射文件
/etc/nginx/koi-utf											#Nginx编码转换映射文件
/etc/nginx/koi-win											#Nginx编码转换映射文件

###############浏览器支持的直接打开的文件格式
/etc/nginx/mime.types	

###############nginx管理相关命令
/usr/sbin/nginx			 									 #Nginx命令行管理终端工具
/usr/sbin/nginx-debug										  #Nginx命令行与终端调试工具

###############nginx日志相关目录与文件
/var/log/nginx												#Nginx默认存放日志目录
/etc/logrotate.d/nginx		                                    #Nginx默认的日志切割

nginx配置文件

# nginx配置文件模块
- 核心模块
- 事件驱动模块
- http内核模块(重点)


# 配置文件详解
[root@web02 /etc/nginx]# cat /etc/nginx/nginx.conf 
################核心模块##########################
user  nginx;									# 启动nginx服务用户
worker_processes  1;							 # worcker进程数(可设为auto自动)

error_log  /var/log/nginx/error.log warn;		   # 错误日志路径和级别
pid        /var/run/nginx.pid;					  # pid文件路径

################事件驱动模块##########################
events {
    worker_connections  1024;					  # 每个worker进程允许连接数
}

################http内核模块##########################
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压缩
    #gzip  on;
    
# 包含当前目录下所有以.conf结尾的文件
    include /etc/nginx/conf.d/*.conf;
}

猜你喜欢

转载自www.cnblogs.com/tcy1/p/12890084.html
今日推荐