Nginx的反向代理、动静分离、负载均衡

反向代理

反向代理是一种常见的网络技术,它可以将客户端的请求转发到服务器群集中的一个或多个后端服务器上进行处理,并将响应结果返回给客户端。反向代理技术通常用于提高网站的可伸缩性和可用性,并且可以隐藏真实的后端服务器地址。

复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    # gzip on;
	

         server {
	 listen 80;
	 server_name localhost;
	 #默认编码
	 charset utf-8;
	 # access_log logs/host.access.log  main;
	 location / {
		 #反向代理的url
		 proxy_pass http://www.baidu.com/;

		}
 
	}
	
}

访问localhost:80

跳转到百度

负载均衡

负载均衡是一种常见的网络技术,用于将流量在多个服务器之间平均分配,以提高系统的性能、可伸缩性和可靠性。负载均衡器(Load Balancer)作为中间层,接收来自客户端的请求,并将请求转发到后端的多个服务器上进行处理。

复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

        # gzip on;
	upstream httpd {
		server 192.168.2.1:81 weight=10 down;
		server 192.168.2.3:80 weight=1;
		server 192.168.2.4:80 weight=1 backup;
	}

         server {
	 listen 80;
	 server_name localhost;
	 #默认编码
	 charset utf-8;
	 # access_log logs/host.access.log  main;
	 location / {
		 #反向代理的url
		 proxy_pass http://httpd;

		}
 
	}
	  server {
	 listen 81;
	 server_name localhost;
	 #默认编码
	 charset utf-8;
	 # access_log logs/host.access.log  main;
	 location / {
		   root   html;
		   #定义首页文件的名字
		   index index.html index.htm;
		}
 
	}
	
}
  1. down:表示当前的server暂时不参与负载
  2. weight:默认为1.weight越大,负载的权重就越大。
  3. backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。

动静分离

动静分离方面有着广泛应用。使用Nginx进行动静分离可以提高网站的性能和可伸缩性,并减轻后端服务器的压力。

复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

        # gzip on;
	upstream httpd {
		server 192.168.2.1:81 weight=10 down;
		server 192.168.2.3:80 weight=1;
		server 192.168.2.4:80 weight=1 backup;
	}

         server {
	 listen 80;
	 server_name localhost;
	 #默认编码
	 charset utf-8;
	 # access_log logs/host.access.log  main;
	 location / {
		 #反向代理的url
		 proxy_pass http://httpd;

		}
		# 静态资源
		location /css {
		root /usr/local/nginx/static;
		index index.html index.htm;
		}
		location /images {
		root /usr/local/nginx/static;
		index index.html index.htm;
		}
		location /js {
		root /usr/local/nginx/static;
		index index.html index.htm;
		}	
 
	}
	  server {
	 listen 81;
	 server_name localhost;
	 #默认编码
	 charset utf-8;
	 # access_log logs/host.access.log  main;
	 location / {
		   root   html;
		   #定义首页文件的名字
		   index index.html index.htm;
		}
 
	}
	
}
相关推荐
Liang_GaRy41 分钟前
心路历程-三个了解敲开linux的大门
linux·运维·服务器
玩转以太网8 小时前
基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
服务器·网络协议·http
小晶晶京京9 小时前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天9 小时前
A12预装app
linux·服务器·前端
碎像10 小时前
Linux上配置环境变量
linux·运维·服务器
sunflower_w12 小时前
linux I2C核心、总线与设备驱动
linux·运维·服务器
Ronin30513 小时前
【Linux系统】进程间通信:System V IPC——共享内存
linux·服务器·system v 共享内存
伊成13 小时前
Docker 部署 Nginx 完整指南
nginx·docker·容器
网硕互联的小客服13 小时前
Apache 如何支持SHTML(SSI)的配置方法
运维·服务器·网络·windows·php
Demisse16 小时前
[Linux] Linux文件系统基本管理
linux·运维·服务器