一. 网络服务

  web服务器和web框架的关系

web服务器(nginx):接收HTTP请求(例如www.baidu.com)并返回数据

web框架(django,flask):开发web应用程序,处理接收到的数据

  nginx

# 面试技巧
支持高并发,能支持几万并发连接
资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
可以做http反向代理和负载均衡
支持异步网络i/o事件模型epoll

二 . Tengine

Tengine是由淘宝网发起的web服务器项目,在nginx基础上支持高并发,并且性能非常的稳定.  

  安装Tengine

# 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配置文件学习

Nginx主配置文件/etc/nginx/nginx.conf是一个纯文本类型的文件,整个配置文件是以区块的形式组织的。一般,每个区块以一对大括号{}来表示开始与结束

  nginx主配置文件解析

    coreModule核心模块

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内核模块

# 公共的配置定义在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;
}
}

  nginx功能学习

# 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

  配置nginx多虚拟主机实战, 其实就是修改nginx.conf,写入多个server标签,支持多个虚拟主机

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网页

  nginx多虚拟主机的两个概念

1.如果没有域名,写ip地址的话,虚拟主机是自上而下的加载顺序 ,
2.如果有域名,nginx会基于域名区分虚拟主机

  测试语法是否正确

[root@localhost conf]# nginx -t

  改完配置,重新加载nginx,平滑重启

nginx -s reload 

四 . 学习nginx的状态模块功能

  1.修改nginx.conf的配置文件

# 找到一个server虚拟主机,写入如下配置 (一定写在server里面)
location /status {
stub_status on;
}

  2.重启nginx,加载status状态模块

nginx -s reload 

  3.通过ab压测命令,去给网站发n多个请求

# 安装ab压测命令工具
yum -y install httpd-tools

  4.给服务器nginx发10000个请求

ab -kc 1000 -n 10000 http://192.168.81.130/

六 . nginx的access.log访问日志功能

# 编辑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的404页面

修改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限制ip访问功能

# 找到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;
}

九 . 实现nginx反向代理功能

# 环境准备
准备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,查看反向代理效果

Linux -- nginx的更多相关文章

  1. linux nginx 启动脚本

    linux nginx 启动脚本 [root@webtest76 ~]# vi /etc/init.d/nginx #!/bin/bash # nginx Startup script for the ...

  2. Linux nginx日志按天分割实例

    Linux nginx日志按天分割实例   nginx的日志有个小缺点,日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件非常大,不便于管理这就需要我们自己来实现了,按日期每 ...

  3. linux+nginx+tomcat负载均衡,实现session同步

    linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...

  4. MacOS + Linux + Nginx

    Asp.Net Core 发布和部署( MacOS + Linux + Nginx ) 前言 在上篇文章中,主要介绍了 Dotnet Core Run 命令,这篇文章主要是讲解如何在Linux中,对 ...

  5. PHP 的解压缩ZipArchive中的extractTo()方法 LINUX+nginx环境中解压zip时文件丢失的问题

    在项目中要用ZipArchive解压ZIP文件,起初測试环境在WINDOWS平台中,測试通过,换到 LINUX+nginx 的环境中时 就出问题了(ZIP包中有文件和目录一共3百多个文件,大部分是带汉 ...

  6. linux+nginx+mysql+php

    LNMP(linux+nginx+mysql+php)服务器环境配置   一.简介 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为 “engine X”, 是一个高性能的 ...

  7. Linux Debian 7部署LEMP(Linux+Nginx+MySQL+PHP)网站环境

    我们在玩VPS搭建网站环境的时候,都经常看到所谓的LAMP.LNMP.LEMP,LAMP, 其中的A代表APECHE WEB驱动环境,LNMP中的N代表NGINX驱动环境,只不过海外的叫法NGINX ...

  8. LNMP(Linux+Nginx+Mysql+PHP---源码)环境搭建

    LNMP(Linux+Nginx+Mysql+PHP(Perl)) Linux:[root@dep5 mysql]# cat /etc/issueRed Hat Enterprise Linux Se ...

  9. 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  10. Asp.net Core 打包发布 (Linux+Nginx)

    如果你觉得如下这些文章对你有帮助,请点击链接支持作者原创 http://www.cnblogs.com/savorboard/ .Net Core SDK 命令介绍   前言 本篇主要介绍 asp.n ...

随机推荐

  1. Restful API设计规范及实战

    Restful API的概念在此就不费口舌了,博友们网上查哈定义文章很多,直入正题吧: 首先抛出一个问题:判断id为 用户下,名称为 使命召唤14(COD14) 的产品是否存在(话说我还是很喜欢玩类似 ...

  2. Android Material Design控件使用(三)——CardView 卡片布局和SnackBar使用

    cardview 预览图 常用属性 属性名 说明 cardBackgroundColor 设置背景颜色 cardCornerRadius 设置圆角大小 cardElevation 设置z轴的阴影 ca ...

  3. FastDfs集群docker化部署

    初识分布式文件系统FastDFS- 1.分布式与集群的区别 区别:集群是个物理形态,分布式是个工作方式.只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道:一个程序或系统,只要运行 ...

  4. 20190321-HTML基本结构

    目录 1.HTML概念 超文本标记语言 2.HTML版本 HTML HTML5 3.HTML基本结构 基本结构 元素.标签.属性 4.HTML常用标签 内容 1.HTML概念 HTML(HyperTe ...

  5. 后端开发者的Vue学习之路(三)

    目录 上节内容回顾 组件 什么是组件 组件注册 全局注册组件 局部注册组件 使用细节 组件注册的命名规范: 组件中只有一个根元素 组件也是一个实例 组件在某些元素中渲染出错 组件间的数据传递 父子组件 ...

  6. Apex 单元测试辅助函数简介

    startTest和stopTest的使用 在Apex的Test类中,有startTest和stopTest两个函数.这两个函数经常配对使用. 每个单元测试函数都只能调用它们一次. startTest ...

  7. MongoDB的存储结构及对空间使用率的影响

    MongoDB的存储结构及对空间使用率的影响 使用MongoDB一段时间的同学肯定会发现,MongoDB往往会占用比实际数据大小多不少空间的问题.如果利用db.stats()命令去查看,会发现Mong ...

  8. 如何开启红米手机4X的ROOT超级权限

    红米手机4X通过什么方法拥有了root权限?大家都清楚,Android机器有root权限,如果手机拥有了root相关权限,可以实现更强的功能,举个栗子大家公司的营销部门同事,使用大多数营销软件都需要在 ...

  9. php+ajax实现登录按钮加载loading效果

    php+ajax实现登录按钮加载loading效果,一个提高用户体验,二个避免重复提交表单,ajax判断加载是否完成. 登录表单 <form onsubmit="return chec ...

  10. RHEL 6.6下Python 2.6.6升级到Python 3.6.6

      最近一段时间shell脚本写得很溜,很有成就感,一想到被自己落下的Python就感到十分心虚.开始坚持学习Python!先将自己的测试机器的Python升级到Python 3.6.6.简单整理.记 ...