常见的web架构php
LAMP - Linux +Apache +MySQL + PHPhtml
LNMP - Linux +Nginx + Mysql + PHPnginx
RHEL开源 Linux系统 RHEL CentOS Fedora 开源 --- 开放源代码web
Nginx和Apache自己对动态网页没有处理能力 ----> PHPsql
Apache + PHP ---->apxs命令 ---> DSO方式 把libphp5.so模块插入到apache 配置中apache
Nginx + PHP --->经过php-fpm的服务 默认9000的端口windows
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
1、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/
2、Nginx目录结构(重点目录 + 文件的介绍)
3、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 每一年年费
4、配置虚拟主机(基于域名)
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 是否响应
防火墙 权限
5、测试nginx的连接数
在配置文件的http中添加一段,并在hosts文件中添加解析
6、跳转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;
}
7、
经过IP --->没有变化应---->遭受IP恶意绑定
你有域名 对方有IP没有域名 用你的域名 养IP
server { 第一个server标签
listen 80;
location / {
deny all;
}
}
8、基于端口的虚拟主机
修改配置文件的server字段中的listen端口号,能够实现端口访问 如:服务器IP:端口号
当域名与端口号都存在且并不匹配时,将按照端口号为准
9、基于IP的虚拟主机
与前者相似都是修改配置文件的server字段中的listen字段,能够在端口号前面加上虚拟IP,这样访问的对面servername页面。
10、Nginx日志 使用第三种
Apache上的日志轮询几种形式? 3种
1.cronolog
2.ratatelog
3.cron + mv + graceful