常见的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进阶的更多相关文章

  1. 架构设计:负载均衡层设计方案(3)——Nginx进阶

    版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) 目录(?)[-] Nginx继续进阶 1gzip ...

  2. Nginx进阶-不停服更新

    前言 7*24小时不间断的提供对外服务和产品快速迭代是互联网行业的特征,基于需求所有的发布都不能停止当前对外的服务.本文围绕此话题衍生出,不停服上下线工具实现. 看本文前请先看 Nginx初识 Ten ...

  3. 02·nginx进阶·服务优化配置管理

    企业场景常用的Nginx http功能模块汇总 ngx_ http_ core_ module 包括-些核心的http 参数配置,对应Nginx的配置为HTTP区块部分 ngx_ http _acce ...

  4. [Day6] Nginx 进阶模块

    一. 使用变量防盗链referer模块 功能:通过验证referer请求头是否合法,来拒绝非正常的网站访问我们站点的资源 思路:通过referer模块,用invaild_refereri变量根据配置判 ...

  5. 三十七、www服务nginx进阶

    六.查看nginx默认首页和目录:如下,可以看到,默认的目录是html,首页是index.html [root@djw1 conf]# grep html nginx.conf            ...

  6. Nginx进阶使用-负载均衡原理及配置实例

    介绍 跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术.可以将Nginx用作非常有效的HTTP负载平衡器,以将流量分配到多个应用程序服务器,并使用N ...

  7. nginx服务部署 说明

    第1章 常用的软件 1.1 常用来提供静态服务的软件   Apache :这是中小型Web服务的主流,Web服务器中的老大哥,   Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...

  8. nginx服务企业应用

    1.1 常用来提供静态服务的软件 Apache :这是中小型Web服务的主流,Web服务器中的老大哥, Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx 的 ...

  9. nginx参考资料

    什么是负载均衡? 官网的入门文章中文版 love2上关注数比较高的nginx教程 什么是反向代理,什么又是正向代理? csdn上浅谈Nginx之反向代理与负载均衡 Nginx 作为 WebSocket ...

随机推荐

  1. head插件安装-elasticsearch

    1.安装node环境: 下载地址:https://nodejs.org/download/release/v8.13.0/node-v8.13.0-linux-x64.tar.gz gunzip  n ...

  2. Elasticsearch基本概念和使用

    Elasticsearch基本概念和使用 1.操作索引 1.1.基本概念 Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的. 对比关系: 索引( ...

  3. 1shell基础,变量,运算符

    1shell基础语法 是一个命令解释器,在操作系统的最外层,负责直接与用户进行对话. 我们输入的命令,计算机时不识别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时把计算机 ...

  4. 关于KMP的一点思考

    关于KMP的一点思考 KMP的\(next\)数组的性质很精妙,有必要开一个坑学习一下 Part 1 啥是next \(next[i]\)表示对于\(pre_i\)这个字符串,这个抠出来的字符串本身后 ...

  5. 洛谷$P$2468 粟粟的书架 $[SDOI2010]$ 主席树

    正解:主席树 解题报告: 传送门! 题目大意是说,给定一个矩形,然后每次会给一个,这个大矩形中的一个小矩形,询问从小矩形中最少选多少个数字能满足它们之和大于等于给定数字$x$ 看起来很神的样子,完全不 ...

  6. [03]java中的方法以及控制语句

    00 Java中的语句块 语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句.块确定了局部变量的作用域.块中的程序代码,作为一个整体,是要被一起执行的.块可以被嵌套在另一个块中,但 ...

  7. Linux入门系列1--环境准备及Linux安装

    "工欲善其事.必先利其器",本文作为"Linux零基础入门系列"开篇,将完整演示整个开发环境的安装和配置过程,为后续的开发和实验做好基础准备.如果您已安装好环境 ...

  8. Java 从入门到进阶之路(二十一)

    在之前的文章我们介绍了一下 Java 中的日期操作,本章我们来看一下 Java 集合框架中的Collection. 早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, ...

  9. Faceted project metadata file "/.settings/org.eclipse.wst.common.project.facet.core.xml" could not be read

    转载自 https://blog.csdn.net/qing_gee/article/details/79397052 Eclipse启动后项目报了下图这个错误,说是org.eclipse.wst.c ...

  10. winds消息大全

    本文链接:https://blog.csdn.net/testcs_dn/article/details/42360547 消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如, ...