web服务器(nginx):接收HTTP请求(例如www.baidu.com)并返回数据
web框架(django,flask):开发web应用程序,处理接收到的数据
# 面试技巧
支持高并发,能支持几万并发链接 资源消耗少,在3万并发链接下开启10个nginx线程消耗的内存不到200M 能够作http反向代理和负载均衡 支持异步网络i/o事件模型epoll
Tengine是由淘宝网发起的web服务器项目,在nginx基础上支持高并发,而且性能很是的稳定.
# 1. 检测是否在Linux上是否经过yum安装了nginx(只有用yum安装才能用下面方法检测) rpm -qi nginx # 若是有返回值就证实安装了,而后删除它 yum remove nginx -y # 2. 安装nginx依赖包 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel
ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y # 3.源代码编译安装tenginx 1.下载淘宝nginx的源代码包 wget http://tengine.taobao.org/download/tengine-2.3.0.tar.gz 2.解压缩源代码 tar -zxvf tengine-2.3.0.tar.gz 3.切换进入nginx源代码目录 进行编译安装 cd tengine-2.3.0 4.释放编译文件,指定安装路径 ./configure --prefix=/opt/s18tngx/ 5.开始编译且安装 make && make install 6.查看nginx的安装目录有哪些东西 [root@localhost s18tngx]# ls # conf 存放nginx的配置文件目录的 # html 存放前端文件的地儿 # logs 存放nginx日志文件的目录 # sbin 存放nginx的可执行命令 7.配置nginx的环境变量,支持快捷启动 [root@localhost sbin]# vim /etc/profile 把sbin的绝对路径加到path里 8.使其生效 source /etc/profile 9.启动nginx 直接输入nginx命令 10.修改nginx的首页文件 存放nginx安装目录下的html文件夹中,名为index.html的文件 11.vim index.html 写入想要展现的页面
Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。通常,每一个区块以一对大括号{}来表示开始与结束
coreModule核心模块html
user www; #Nginx进程所使用的用户
worker_processes 1; #Nginx运行的work进程数量(建议与CPU数量一致或auto)
error_log /log/nginx/error.log #Nginx错误日志存放路径
pid /var/run/nginx.pid #Nginx服务运行后产生的pid进程号
event事件模块前端
events { worker_connections //每一个worker进程支持的最大链接数 use epoll; //事件驱动模型, epoll默认 }
http内核模块python
# 公共的配置定义在http{}
http { #http层开始
... gzip on; # 开启压缩图片功能
# 使用Server配置网站, 每一个Server{}表明一个网站(简称虚拟主机)
'server' { listen 80; #监听端口, 默认80
server_name localhost; # 提供服务的域名或主机名
access_log host.access.log # 访问日志
# 控制网站访问路径
'location' / { root /opt/share/nginx/html; # 存放网站代码路径
index index.html index.htm; # 服务器返回的默认页面文件
} # 指定错误代码, 统必定义错误页面, 错误代码重定向到新的Locaiton
error_page 500 502 503 504 /50x.html; } }
# 1. C:\Windows\System32\drivers\etc\hosts 用notepad++打开
修改windows的hosts文件,就是写一个假的域名 # 2.写入测试域名,以下
192.168.81.130 www.s18lol.com (格式必须是这样) 而后输入www.s18.lol.com 就访问的是192.168.81.130
server { listen 80; server_name www.s18dnf.com; location / { root /opt/s18dnf/; # 须要建这个文件夹
index index.html index.htm; } #第二个虚拟主机 lol网址
server { listen 80; server_name www.s18lol.com; location / { root /opt/s18lol/; # 须要建这个文件夹
index index.html; } }
mkdir -p /opt/s18dnf/ /opt/s18lol/
# 在这两个文件夹下分别:
touch index.html # 而后去copy网页
1.若是没有域名,写ip地址的话,虚拟主机是自上而下的加载顺序 , 2.若是有域名,nginx会基于域名区分虚拟主机
[root@localhost conf]# nginx -t
nginx -s reload
# 找到一个server虚拟主机,写入以下配置 (必定写在server里面) location /status { stub_status on; }
nginx -s reload
# 安装ab压测命令工具
yum -y install httpd-tools
ab -kc 1000 -n 10000 http://192.168.81.130/
# 编辑nginx.conf打开以下配置参数
打开以下注释 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 logs/access.log main; access_log "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G" main; 重启nginx查看logs下的日志文件,检测用户请求信息 # cd 到 logs(这样才能执行下面的命令)
tail -f logs/access.log
修改nginx.conf的404错误页面优化 找到以下配置 #当错误状态码是 40x系列就返回,nginx目录下的40x.html error_page 404 403 402 400 401 /40x.html; cd /opt/s18lol/ vim 40x.html # 写入想要的页面 重启nginx 查看404页面
# 找到nginx.conf修改以下代码
location / { #禁止192.168.226.0/24 这个地址段全部的ip访问
# 192.168.226.0/24 # 0就是0-255字段,24是子网掩码
# 禁止 192.168.226.1 这个ip访问
deny 192.168.226.1 ; root /opt/s18dnf; index index.html index.htm; }
# 环境准备
准备2台机器 一个是真实资源文件 192.168.81.130 就理解为房东 ,提供dnf的资源界面 一个是反向代理服务器 192.168.81.131 理解为中介,当咱们访问中介,就访问到dnf的网站资源 1.分别在2台机器,安装nginx 2.资源服务器已经配置好,返回dnf页面 3.反向代理服务器配置以下 vim编辑nginx.conf 找到第一个server虚拟主机 修改配置以下 server_name 192.168.81.131; location / { proxy_pass http://192.168.226.130; } 4.重启nginx,查看反向代理效果