赞
踩
DNS解析过程、HTTP工作原理
1.用户打开浏览器输入URL地址
2.通过DNS解析url地址找到对应的ip地址
3.通过ip地址向对应的web服务器发送tcp连接请求
4.调度器再通过tcp三次握手将http请求发送给web服务器
常见的web架构类型
1.首先看本地缓存,是否有对应的页面信息
2.如果本地缓存没有则去看本地hosts文件有没有记录
3.如果本地hosts文件没有记录,则通过递归查询将dns解析请求发送至本地DNS服务器,也就是通过递归的方式去互联网上解析此页面,将解析的结果缓存到本地服务器上,可以通过IPS DNS、网关、自己搭建的Cache DNS缓存DNS实现
4.去公网请求的方式是:通过迭代查询将dns的解析请求发送到互联网DNS服务器也就是13台根域服务器
DNS域名解析记录指针
1.用户通过浏览器输入url:http://www.baidu.com
2.DNS将域名解析为IP
3.用户通过IP和web服务器建立TCP连接
4.通过HTTP发送请求(请求的页面)
5.服务器解析请求,响应报文
6.浏览器将收到的响应报文(开发人员写的代码),将代码解析为我们能看懂的页面
7.TCP断开
http协议响应数据的过程,静态的找nfs、动态的找mysql、redis
返回数据的过程
反向代理,外访内(客户访问到代理服务器,代理服务器去代替客户访问对应的节点web服务器)
负载均衡
安全服务
架构
配置repo文件,一定要叫Nginx.repo
[root@localhost yum.repos.d]# vim Nginx.repo
[Nginx]
name=Nginx
baseurl=http://Nginx.org/packages/centos/7/$basearch
enabled=1
gpgcheck=0
查看所有的yum仓库列表
[root@localhost yum.repos.d]# yum repolist
安装Nginx
[root@localhost yum.repos.d]# yum -y install Nginx
查看Nginx版本信息
[root@localhost yum.repos.d]# Nginx -v -v查看版本号
Nginx version: Nginx/1.16.1
[root@localhost yum.repos.d]# Nginx -V -V查看版本号及编译参数
Nginx version: Nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/etc/Nginx --sbin-path=/usr/sbin/Nginx --modules-path=/usr/lib64/Nginx/modules --conf-path=/etc/Nginx/Nginx.conf --error-log-path=/var/log/Nginx/error.log --http-log-path=/var/log/Nginx/access.log --pid-path=/var/run/Nginx.pid --lock-path=/var/run/Nginx.lock --http-client-body-temp-path=/var/cache/Nginx/client_temp --http-proxy-temp-path=/var/cache/Nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/Nginx/scgi_temp --user=Nginx --group=Nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'
[root@localhost soft]# tar xf Nginx-1.16.0.tar.gz
[root@localhost soft]# useradd Nginx -s /sbin/nologin
[root@localhost soft]# yum -y install pcre pcre-devel openssl openssl-devel
[root@localhost Nginx-1.16.0]#./configure --prefix=/application/Nginx --user=Nginx --group=Nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' && make && make install
[root@localhost Nginx]#ln -s /application/Nginx/sbin/* /usr/sbin/
[root@localhost Nginx]# ./sbin/Nginx
[root@localhost Nginx]# netstat -lnpt | grep Nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 30181/Nginx: master
使用rpm -ql Nginx可以看到Nginx的所有文件路径
路径 | 类型 | 作用 |
---|---|---|
/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、Uwcgi配置文件 |
/etc/Nginx/koi-utf /etc/Nginx/koi-win /etc/Nginx/win-utf | 配置文件 | Nginx编码转换映射文件 |
/etc/Nginx/mim.types | 配置文件 | http协议的content-type与扩展名 Nginx所能支持的文件类型 |
/usr/lib/systemd/system/Nginx.service | 配置文件 | 配置系统守护进程管理器 |
/usr/sbin/Nginx /usr/sbin/Nginx-debug | 命令 | Nginx终端管理命令 |
/etc/logrotate.d/Nginx | 目录 | Nginx日志轮询,日志切割 |
/etc/Nginx/modules /usr/lib64/Nginx /usr/lib64/Nginx/modules | 目录 | Nginx模块目录 |
/usr/share/Nginx /usr/share/Nginx/html /usr/share/Nginx/html/50x.html /usr/share/Nginx/html/index.html | 目录 | Nginx默认站点目录 |
/usr/share/doc/Nginx-1.16.1 /usr/share/man/man8/Nginx.8.gz | 目录 | Nginx的帮助手册 |
/var/cache/Nginx | 目录 | Nginx的缓存目录 |
/var/log/Nginx | 目录 | Nginx的日志目录 |
使用Nginx -V可以看到编译安装的参数
编译选项 | 作用 |
---|---|
–prefix=/etc/Nginx –sbin-path=/usr/sbin/Nginx –modules-path=/usr/lib64/Nginx/modules –conf-path=/etc/Nginx/Nginx.conf –error-log-path=/var/log/Nginx/error.log –http-log-path=/var/log/Nginx/access.log –pid-path=/var/run/Nginx.pid –lock-path=/var/run/Nginx.lock | 程序安装目录和路径 |
–http-client-body-temp-path=/var/cache/Nginx/client_temp –http-proxy-temp-path=/var/cache/Nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp –http-scgi-temp-path=/var/cache/Nginx/scgi_temp | 临时缓存文件 |
–user=Nginx –group=Nginx | 指定Nginx进程启动用户和组 |
–with-cc-opt | 设置额外的参数将被添加到CFLAGS变量 |
–with-ld-opt | 设置附加的参数,连接系统库 |
Nginx主配置文件/etc/Nginx/Nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组成的,一般每个块以一对大括号{}来表示开始与结束
1.CoreModule 核心模块 全局配置
2.EventModule 事件驱动模块
3.HTTPCoreModule http内核模块 局部
一个简单的架构
http {
server {
listen 80;
server_name www.know.com;
location / {
root /know_system/know;
html index.html;
}
}
server {
listen 80;
server_name www.baidu.com;
location / {
root /baidu/www
index index.php
}
}
}
user Nginx; #Nginx进程所使用的的用户
worker_processes 1; #Nginx允许的work进程数量(建议与CPU数量一致或者auto,ps命令时可以看到)
error_log /log/Nginx/error.log; #Nginx错误日志存放路径
pid /var/run/Nginx.pid; #Nginx服务运行后产生的pid进程号
events {
worker_connections 1024; #每个worker进程支持最大的连接数,一般一个CPU是1024,二个就是2048...
use epoll; #事件驱动模型,epoll默认
}
公共的配置定义在http{}
http { //http层开始
server { //使用server配置网站,每个server{}代表一个网站(简称虚拟主机)
listen 80; //监听端口,默认80,多个server可以使用不同监听端口
server_name localhost; //通过服务的域名或主机名
location /{
root /usr/share/Nginx/html; //存放网站代码的路径
index index.php index.html index.htm; //服务器返回的默认页面文件也就是首页索引,谁在前优先去查找
}
error_page 500 502 503 504 /50x.html; //指定错误代码,统一定义错误页面,错误代码重定向到新的location
}
sendfile on; //是否可用发送文件
keepalive_timeout 65; //tcp长连接试时间,65表示65秒后没有其他操作就断开
include /etc/Nginx/conf.d/*.conf; //加载引入其他配置文件,一般主配置文件只保留事件模块和http模块,server模块一般在单独文件然后使用include引入
} //http层结束
默认配置文件内容
[root@localhost conf.d]# egrep -v '^$|.*#' default.conf.bak
server {
listen 80; //监听端
server_name localhost; //域名
location / {
root /usr/share/nginx/html; //根目录
index index.html index.htm; //索引
}
error_page 500 502 503 504 /50x.html; //错误页面
location = /50x.html {
root /usr/share/nginx/html;
}
}
这里/50x.htm;表示/usr/share/nginx/html/50.html
注意:配置文件要位于/etc/nginx/conf.d/*.conf
[root@localhost web]# cat /etc/nginx/conf.d/know.conf
server {
listen 80;
server_name know.com;
location / {
root /web/know;
index index.html;
}
}
创建网站目录
[root@localhost ~]# mkdir -p /web/know
检测配置语法
[root@localhost web]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
关闭selinux
[root@localhost web]# setenforce 0
[root@localhost web]# sed -ri '/^SELINUX/c\SELINUX=disabled' /etc/sysconfig/selinux
配置网站,将之前在培训时制作的网站进行上传
[root@localhost know]# rz know_system.zip
重载服务
[root@localhost web]# systemctl restart nginx
实现域名访问
在Windows主机上打开C:\Windows\System32\drivers\etc\hosts,加上192.168.81.210 know.com
在命令行,执行下面命令表示成功
[C:\~]$ ping know.com
正在 Ping know.com [192.168.81.210] 具有 32 字节的数据:
来自 192.168.81.210 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.81.210 的回复: 字节=32 时间<1ms TTL=64
效果
1.解析问题,找本地hosts文件
2.nginx无法启动
1.nginx的功能
2.nginx的优势
3.nginx的应用场景
4.nginx安装
5.nginx配置文件
/etc/nginx/nginx.conf
/etc/nginx/conf.d/*.conf rpm安装的nginx建议把server单独配置在conf.d目录下,后缀必须是.conf,编译安装的则没有
6.服务管理
7.命令工具
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。