1正向代理和反向代理Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点:
1.稳定性极强
2.Nginx提供了非常丰富的配置实例
3.占用内存小,并发能力强
2Nginx下载安装正向代理:
1.正向代理服务是由客户端设立的
2.客户端了解代理服务器和目标服务器都是谁
3.帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址反向代理:
1.反向代理服务器是配置在服务端的
2.客户端不知道访问的到底是哪一台服务器
3.达到负载均衡,并且可以隐藏服务器真正的ip地址
1#官网下载
2#安装依赖
3yum -y install pcre pcre-devel openssl openssl-devel gcc gcc-c++
4#解压安装包
5tar -zxvf nginx-1.18.0.tar.gz
6#新建组和用户,并授权
7groupadd nginx
8useradd -g nginx -s /bin/bash -m nginx
9passwd nginx
10chown -R nginx:nginx /usr/local/nginx
11#复制
12cp -rf /nginx/nginx-1.18.0/* /usr/local/nginx/
13#配置(nginx.conf原位置在conf/nginx.conf,但是初始化的时候直接在根目录)
14./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --with-http_stub_status_module --with-http_ssl_module
15#编译
16make && make install
17#安装
18ln -s /usr/local/nginx/sbin/* /usr/local/sbin
19#检查配置文件,提示ok、successful
20/usr/local/sbin/nginx -t
21#启动
22/usr/local/sbin/nginx
23#查看端口和进程
24netstat -lntup | grep nginx
3关于Nginx的location路径映射
1#优先级关系
2(location = ) > (location /xxx/yyy/zzz) > (location ^~) > (location ~,~*) > (location /起始路径) > (location /)
3location / {
4 #精准匹配,主机名后面不能带能和字符串
5 #例如www.baidu.com不能是www.baidu.com/id=xxx
6}
7#2. 通用匹配
8location /xxx {
9 #匹配所有以/xxx开头的路径
10 #例如127.0.0.1:8080/xxx xxx可以为空,为空则和=匹配一样
11}
12#3. 正则匹配
13location ~ /xxx {
14 #匹配所有以/xxx开头的路径
15}
16#4. 匹配开头路径
17location ^~ /xxx/xx {
18 #匹配所有以/xxx/xx开头的路径
19}
20#5. 匹配结尾路径
21location ~* \.(gif/jpg/png)$ {
22 #匹配以.gif、.jpg或者.png结尾的路径
23}
4Nginx实现负载均衡
Nginx为我们默认提供了三种负载均衡的策略:
1.轮询:
将客户端发起的请求,平均分配给每一台服务器
2.权重:
会将客户端的请求,根据服务器的权重值不同,分配不同的数量
3.ip_hash:
基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上
就是说如果这个客户端的请求的ip地址不变,那么处理请求的服务器将一直是同一个
1#第一种轮询的方式
2upstream my_server{
3 server localhost:8080;
4 server localhost:8081;
5}
6server {
7 listen 80;
8 server_name localhost;
9 location / {
10 proxy_pass http://my_server/;
11 }
12}
13#第二种权重的方式
14upstream my_server{
15 server localhost:8080 weight=10;
16 server localhost:8081 weight=2;
17}
18server {
19 listen 80;
20 server_name localhost;
21 location / {
22 proxy_pass http://my_server/;
23 }
24}
25#第三种ip_hash
26upstream my_server{
27 ip_hash;
28 server localhost:8080 weight=10;
29 server localhost:8081 weight=2;
30}
31server {
32 listen 80;
33 server_name localhost;
34 location / {
35 proxy_pass http://my_server/;
36 }
37}
5Nginx实现动静分离
Nginx的并发能力公式:worker_processes * worker_connections / 4|2 = Nginx最终的并发能力
动态资源需要/4,静态资源需要/2
Nginx通过动静分离来提升Nginx的并发能力,更快的给用户响应
1#动态分配,配置如下
2location / {
3 proxy_pass 路径;
4}
5#静态分配,配置如下
6location /images {
7 root C:/app/nginx;#指定图片存放路径
8 autoindex on; #图片以表格形式展示
9}
10location /html {
11 root C:/app/nginx/nginx-1.18.0;
12 index index.html index.htm;
13}
6Nginx集群
在安装编译时make && make install,出错cp:
conf/koi-win' and
/usr/local/nginx/conf/koi-win' are the same file,在初始化的时候nginx.conf在根目录下
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.test.top;
location /images {
root C:/app/nginx;
autoindex on;
}
location /html {
root C:/app/nginx/nginx-1.18.0;
index index.html index.htm;
}
location / {
proxy_pass http://www.test.top:8000/;
}
}
server {
listen 443 ssl;
server_name www.test.top;
ssl_certificate C:/app/nginx/nginx-1.18.0/ssl/test.crt;
ssl_certificate_key C:/app/nginx/nginx-1.18.0/ssl/test.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://www.test.top:8000/;
}
}
}
加油少年,未来可期!!!