Nginx进阶
常见的web架构
LAMP - Linux +Apache +MySQL + PHP
LNMP - Linux +Nginx + Mysql + PHP
RHEL开源 Linux系统 RHEL CentOS Fedora 开源 --- 开放源代码
Nginx和Apache本身对动态网页没有处理能力 ----> PHP
Apache + PHP ---->apxs命令 ---> DSO方式 把libphp5.so模块插入到apache 配置中
Nginx + PHP --->通过php-fpm的服务 默认9000的端口
nginx处理高并发针对静态小文件(1M) 3W并发 - Nginx 消耗内存资源150M
官方网站: www.nginx.org Nginx是俄罗斯的站点开发
Nginx 国内用的多
Apache 全球最多
Lighttpd 贴吧 豆瓣
Tengine 淘宝 天猫商城
1) Nginx的安装
两种方式:
1.yum二进制安装
2.源码编译 ---- > LNMP 都是编译
默认站点目录:
apache - DocumentRoot htdocs
Nginx -- root参数指明 html目录
默认网页:
apache配置文件中---- Directory -- index.html
nginx index index.html
一、Nginx的基本配置
关于Nginx模块 (解耦) module --- 插件(都是配置文档中的内容)
Nginx使用不同的模块来实现不同的功能,主要有2组模块:
1)Nginx core module (必须的)
包括: Mian模块 Events模块
2)standard HTTP module (不是必须的 但是缺省的安装的 不建议改动)
经典包括:
Core
Access
FastCGI
Gzip (压缩模块,性能优化)
Log 日志模块(访问 错误 警告日志)
Proxy Nginx 的反向代理
Upstream Nginx负载均衡
提示: 模块可以通过官网查询http://nginx.org/en/docs/
二、Nginx目录结构(重点目录 + 文件的介绍)

三、Nginx主配置文件介绍
Nginx的配置文件是一个纯文本文件,整个配置文件是以块的形式组织的。每个模块
一般用{}进行表示
位于最高层 Main --->Events --->http
[root@thinkmo ~]# egrep -v "#|^$" /usr/local/nginx/conf/nginx.conf
worker_processes 1; //worker模式(通过一个进程 使用多个线程去处理请求) prefork模式(全部使用进程) work进程数,写cpu的核数
events {
worker_connections 1024; //work最大连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80; 监听的端口
server_name localhost; 域名
location / { 默认站点
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
虚拟主机====> 一台机器 运行多个web服务
基于域名
基于IP
基于端口
Apache ---->哪个标签 定义虚拟主机? <VirtualHost>
Nginx ---server {}
1.安全 互联网病毒--->扫面端口漏洞
2.成本 IP地址固定IP 每年年费
四、配置虚拟主机(基于域名)
egrep -v "#|^$" nginx.conf > log.lol
[root@salt01 conf]# cp log.lol nginx.conf
cp:是否覆盖"nginx.conf"? y
worker_processes 3;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.thinkmo.cn;
charset utf-8;
root html/www; #默认站点 /appliation/nginx/html/wwww
index index.html #默认网页/appliation/nginx/html/wwww/index.html
}
server {
listen 80;
server_name blog.thinkmo.cn;
charset utf-8;
root html/; #默认站点 /appliation/nginx/html/wwww
index index.html #默认网页/appliation/nginx/html/wwww/index.html
}
server {
listen 80;
server_name bbs.thinkmo.cn;
charset utf-8;
root html/bbs; #默认站点 /appliation/nginx/html/wwww
index index.html #默认网页/appliation/nginx/html/wwww/index.html
}
}
一台服务器 一个iP 三个域名
192.168.1.200 -- www.thinkmo.cn blog.thinkmo.cn bbs.thinkmo.cn
修改windows下hosts文件
配置站点

域名解析 ---DNS正向解析
1.去哪找? 本机hosts文件
2.如果hosts没有 --- >代理服务器
3.如果代理服务器没有 ---> 全球13个DNS根服务器 ----> www.baidu.com
4.返回给代理服务器
总结Nginx配置虚拟主机的流程:
1) 复制一段完整的server{}标签 注意: 要放在http的结束的大括号里面
2)更改server_name 和 对应的网页的root根目录
3)检查文件语法 平滑启动
[root@thinkmo ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx-1.12.2/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx-1.12.2/conf/nginx.conf test is successfu
[root@thinkmo ~]# /usr/local/nginx/sbin/nginx -s reload
4)创建server_name 对应的网页的根目录 并且建立测试文件
5)对客户端server_name 的主机做host解析 或者DNS设置
6)浏览器访问
链接不上:拍错步骤
1)测试连通性 ping (基于icmp协议 -- 一去(echo-request)一回(echo-reply))
Tracert 追踪路径
2)测试端口 telnet
3)wget或者curl 是否响应
防火墙 权限
五、测试nginx的链接数
在配置文件的http中添加一段,并在hosts文件中添加解析

六、跳转301重定向
两种实现方式:
1)别名
在配置文件server字段的servername后面添加一个域名

当我们访问thinkmo.cn的时候就会自动访问www.thinkmo.cn
Apache指定别名 用什么标签?
ServerAlias标签
2)跳转
server {
listen 80;
server_name www.thinkmo.cn thinkmo.cn;
root html/www;
index index.html;
rewrite ^/(.*) http://www.thinkmo.cn/$1 permanent;
}
七、
通过IP --->没有变化应---->遭受IP恶意绑定
你有域名 对方有IP没有域名 用你的域名 养IP
server { 第一个server标签
listen 80;
location / {
deny all;
}
}
八、基于端口的虚拟主机
修改配置文件的server字段中的listen端口号,可以实现端口访问 如:服务器IP:端口号

当域名与端口号都存在且并不匹配时,将按照端口号为准

九、基于IP的虚拟主机
与前者类似都是修改配置文件的server字段中的listen字段,可以在端口号前面加上虚拟IP,这样访问的对面servername页面。
十、Nginx日志 使用第三种
Apache上的日志轮询几种形式? 3种
1.cronolog
2.ratatelog
3.cron + mv + graceful
Nginx进阶的更多相关文章
- 架构设计:负载均衡层设计方案(3)——Nginx进阶
版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx继续进阶 1gzip ...
- Nginx进阶-不停服更新
前言 7*24小时不间断的提供对外服务和产品快速迭代是互联网行业的特征,基于需求所有的发布都不能停止当前对外的服务.本文围绕此话题衍生出,不停服上下线工具实现. 看本文前请先看 Nginx初识 Ten ...
- 02·nginx进阶·服务优化配置管理
企业场景常用的Nginx http功能模块汇总 ngx_ http_ core_ module 包括-些核心的http 参数配置,对应Nginx的配置为HTTP区块部分 ngx_ http _acce ...
- [Day6] Nginx 进阶模块
一. 使用变量防盗链referer模块 功能:通过验证referer请求头是否合法,来拒绝非正常的网站访问我们站点的资源 思路:通过referer模块,用invaild_refereri变量根据配置判 ...
- 三十七、www服务nginx进阶
六.查看nginx默认首页和目录:如下,可以看到,默认的目录是html,首页是index.html [root@djw1 conf]# grep html nginx.conf ...
- Nginx进阶使用-负载均衡原理及配置实例
介绍 跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术.可以将Nginx用作非常有效的HTTP负载平衡器,以将流量分配到多个应用程序服务器,并使用N ...
- nginx服务部署 说明
第1章 常用的软件 1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...
- nginx服务企业应用
1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx 的 ...
- nginx参考资料
什么是负载均衡? 官网的入门文章中文版 love2上关注数比较高的nginx教程 什么是反向代理,什么又是正向代理? csdn上浅谈Nginx之反向代理与负载均衡 Nginx 作为 WebSocket ...
随机推荐
- java引用类型的浅拷贝与深拷贝理解
1.浅拷贝 只会复制地址值,也就是同一个对象两个引用,只是复制了一个引用而已. 2.深拷贝 重新在堆里创建一个新对象给新引用,连同地址值也不一样. 首先要知道Object的clone()方法, pub ...
- Ubuntu 18.04安装搜狗拼音
首先安装fcitx 一.检测是否安装fcitx 首先检测是否有fcitx,因为搜狗拼音依赖fcitx > fcitx 提示: 程序“fcitx”尚未安装. 您可以使用以下命令安装: > s ...
- 洛谷$P4318$ 完全平方数 容斥+二分
正解:容斥/杜教筛+二分 解题报告: 传送门$QwQ$ 首先一看这数据范围显然是考虑二分这个数然后$check$就计算小于等于它的不是讨厌数的个数嘛. 于是考虑怎么算讨厌数的个数? 看到这个讨厌数说, ...
- 洛谷$P$4137 $Rmq\ Problem / mex$ 主席树
正解:主席树 解题报告: 传送门$QwQ$ 本来以为是道入门无脑板子题,,,然后康了眼数据范围发现并没有我想像的那么简单昂$kk$ 这时候看到$n$的范围不大,显然考虑离散化?但是又感觉似乎布星?因为 ...
- $Noip2011/Luogu1311$ 选择客栈
$Luogu$ $Sol$ 暴力十分显然叭.正解不是很好想. 我最开始想维护所有色调的客栈的前缀和后缀,然后每扫到一个最低消费合法的就统计一次答案.但是这样会重复计数,两个合法客栈之间有几个消费合法的 ...
- Java 解析Exception信息
最近的项目需要捕获系统抛出的异常,并将异常信息保存,记录以下解析Exception的方法. 异常详细信息 这里说的“异常详细信息”指的是平时打印到控制台的那种信息,如下图 获取方法: package ...
- ecshop数据结构
ecshop数据结构 2.7.2版本,数据库表 共88张表 注: 1.颜色为蓝色的字,有待讨论验证的地方. 2.颜色为红色的字,是新增的字段.(改文档是基于网上下载的老版本的数据字典修改而成,已经检 ...
- nginx 负载均衡的配置
首先搭建好三台nginx,我是用VM搭建的 nginx搭建,https://www.cnblogs.com/liubaoqing/p/10507962.html 这里的三台nginx ,ip分别是 1 ...
- 基于Arduino的按键控制LED实验
I/O 口的意思即为INPUT 接口和OUTPUT 接口,到目前为止我们设计的小灯实验都还只是应用到Arduino 的I/O 口的输出功能,这个实验我们来尝试一下使用Arduino的I/O 口的输入功 ...
- 使用SqlDependency实时监听SQL server数据库变化并执行事件
sql server设置:ALTER DATABASE <DatabaseName> SET ENABLE_BROKER;语句让相应的数据库启用监听服务,以便支持SqlDependency ...