A apache加载PHP 通过模块loadmoudle
B nginx 通过fast.cgi 接口
C etc/init.d/想要重启的 restar(万能的重启命令)
D 两个的区别n处理高并发能力强,处理静态文件能力强,线程与进程,a稳定线下开发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,rewrite ,比nginx 的rewrite 强大 (;cgi.fix_pathinfo=1支持两种重写规则/类型和用?类型)
E 线程和进程 a中每个请求作为一个进程,n中可以把多个线程放到一个进程中
Q 负载均衡
1. http重定向 优点:简单 缺点:负载服务器是瓶颈,两次请求,外网不安全,硬件限制(所有服务器都在机房)
2. DNS重解析 与http相似 区别dns在网络运营商那里,不容易挂 (操作进入阿里云-》云解析)
3. Ip负载均衡 缺点:负载服务器压力大(一张网卡) 优点:安全
4. 链路层是直接返回处理mac地址(三角模式,直接返回)
5. 反向代理是在负载服务器上装两个网卡(两张网卡)
W 301临时重定向,302永久
E 算法 1.轮询 缺点:有可能因为服务器性能不同,导致某个服务器压力过大,死掉
2.加权轮询
3.最少连接
4.随机数
5.源地址散列(ip_hash)函数crc32($str)
R nginx 实现反向代理和负载均衡(将所有空格去掉,同时先启动nginx再重启
nginx的配置文件路径usr/local/nginx
启动命令 /usr/local/nginx/sbin/nginx
重启命令 /usr/local/nginx/sbin/nginx -s reload
)
1. 安装
1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx(目前最新版本是1.11.6版本)安装包;可任意选取版本
2) 解压后复制到部署目录。
2. 启动和停止Nginx
Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。
1) 启动Nginx:start nginx
2) 停止Nginx:nginx -s stop
3) 修改配置后重启:nginx -s reload
这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。
start nginx.bat文件内容:start nginx
stop nginx.bat文件内容:nginx -s stop
reload nginx.bat文件内容:nginx -s reload
3. 反向代理配置
修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。
反向代理配置示例:
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#设置反向代理的地址
proxy_pass http://192.168.1.1;
}
代理地址根据实际情况修改。
4. 负载均衡配置(nginx的配置文件路径usr/local/nginx
重启命令 /usr/local/nginx/sbin/nginx -s reload)
nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
负载均衡配置示例:
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name trffweb;
location / {
#反向代理的地址
proxy_pass http://backend;
}
}
Upstream命名和服务器地址根据实际情况修改。
5. 完整配置示例
nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name 2;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://backend;
}
}
}