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;
		}
 
	}
	
}

文章来源地址https://uudwc.com/A/k9XvD

原文地址:https://blog.csdn.net/qq_63431773/article/details/133274545

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年09月26日 14:37
如何通过Gunicorn和Niginx部署Django
下一篇 2023年09月26日 14:38