一、nginx基本简述
nginx是一个开源且高性能、可靠的http web服务、代理服务
开源:直接获取源代码
高性能:支持海量并发
可靠:服务可靠
nginx 功能:
1.web服务器 (http请求 http响应)
2.nginx 负载均衡
3.nginx缓存
三、nginx VS apche
nginx 异步模型 epoll
apche 同步模型 select
四、nginx的yum安装
1.安装Nginx软件所需依赖包
yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree
2.配置nginx源:
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root 10:37:48 @web01 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
nginx | 2.9 kB 00:00:00
nginx/x86_64/primary_db | 46 kB 00:00:00
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,019
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,221
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 409
nginx/x86_64 nginx repo 152
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 1,982
repolist: 25,783
[root 10:38:21 @web01 ~]# yum list nginx
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Available Packages
nginx.x86_64 1:1.16.0-1.el7.ngx
3.安装nginx
[root 10:41:03 @web01 ~]# yum install -y nginx
4.查看nginx的相文件
[root 10:41:35 @web01 ~]# rpm -ql nginx
/etc/logrotate.d/nginx //nginx 日志切割的配置文件
/etc/nginx
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf //与nginx.conf 一样
/etc/nginx/fastcgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types //媒体类型 (http协议中的文件类型)
/etc/nginx/modules
/etc/nginx/nginx.conf //nginx主配置文件
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/win-utf
/etc/sysconfig/nginx //systemctl 管理 nginx的使用的文件
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service // systemctl 管理nginx(开、关、重启、reload) 配置文件
/usr/lib64/nginx
/usr/lib64/nginx/modules
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade
/usr/sbin/nginx //nginx命令
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.16.0
/usr/share/doc/nginx-1.16.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
5.nginx -t 检查语法
[root 11:15:26 @web01 html]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root 11:15:31 @web01 html]#
6.nginx 配置文件
user nginx; //指定nginx进程属于用户nginx
worker_processes 1; //worker进程数量 所有核心数 或*2
error_log /var/log/nginx/error.log warn; //指定错误日志 warn日志格式/只显示警告信息
pid /var/run/nginx.pid; //pid文件
events { //events模块(区域)
worker_connections 1024; //每个进程最大连接数量
}
http { //http区域
include /etc/nginx/mime.types; //媒体类型 http协议中的文件类型
default_type application/octet-stream;
//定义nginx访问日志的格式
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;
server {
listen 80; //指定监听端口
server_name localhost; //域名
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html; //root 指定站点目录
index index.html index.htm; //首页文件(默认展示的文件)
}
}
6.nginx的其他安装方式
- yum安装
epel源
nginx官方源 --nginx最新稳定版
- rpm包
- 编译安装
./configure
make
make install
五、Nginx核心配置
1.nginx日志格式
log_format
指定nginx日志格式
access_log
开启日志 指定目录文件
access_log /var/log/nginx/access_www-gzip.log main gzip buffer=16k flush=5s
buffer=16k
flush=5s
gzip
2.nginx配置文件切割
include文件包含(引用)
3.nginx状态模块及权限控制
状态模块
权限控制
六、虚拟主机的常见类型
1.认识
1个虚拟主机 相当于1个网站
nginx中多个server标签
2.nginx相关错误的解决方法
ping 域名
curl 域名(nginx服务)
nginx配置 及检查语法 与reload
3.虚拟主机
基于域名的虚拟主机(必备)
不同的域名访问不同虚拟主机(网站)
基于端口虚拟主机
不同的端口访问不同的虚拟主机
80 443
网站使用特殊端口
基于ip虚拟主机
负载均衡
不同的ip地址访问不同的虚拟主机
nginx处理用户请求过程
http://nginx.org/en/docs/http/request_processing.html
nginx配置中 指定的端口
是否有 想要的域名(host)
如果有 使用这个主机
如果没有 则使用虚拟的主机(默认第一个)