nginx正向代理、反向代理、负载均衡

一、概述

nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。

二、正向代理

代理的是客户端

  • 正向代理服务是由客户端设立的。
  • 客户端了解代理服务器和目标服务器都是谁。
  • 帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。

三、反向代理

代理的是服务器

  • 反向代理服务器是配置在服务端的。
  • 客户端是不知道访问的到底是哪一台服务器。
  • 达到负载均衡,并且可以隐藏服务器真正的ip地址。

四、负载均衡

负载均衡策略有两种:内置策略和扩展策略。内置策略:轮询、加权轮询、lp hash;

  • 轮询:将客户端发起的请求,平均的分配给每一台服务器。 默认策略

  • 权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。

  • ip_hash:基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上。 根据ip地址计算出一个结果 根据这个结果找对应的服务器

五、下载

nginx: download 下载稳定版本。

wondows直接双击nginx.exe文件启动,访问连接localhost:80查看是否安装成功

六、nginx配置

nginx核心配置文件nginx.conf

nginx.conf配置文件的内容如下:

user  nginx;     # Nginx用户  
worker_processes  auto;   # 工作进程:数目或者auto。根据硬件调整,通常等于CPU数量或者2倍于CPU

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;    # pid(进程标识符):存放路径。
# 以上统称为全局块, 
# worker_processes他的数值越大,Nginx的并发能力就越强
# error_log 代表Nginx的错误日志存放的位置

events {
    worker_connections  1024;   #每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行
}
# events块
# worker_connections他的数值越大,Nignx并发能力越强

http {   # http块
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
	# include代表引入一个外部的文件 -> /mime.types中放着大量的媒体类型
    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  /var/log/nginx/access.log  main;   # 日志

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;    # keepalive超时时间  单位是秒

    #gzip  on;
	#include /etc/nginx/conf.d/*.conf; -> 引入了conf.d目录下的以.conf为结尾的配置文件
    # 相当于引入外部的配置文件  咱们主要关注这个文件
    include /etc/nginx/conf.d/*.conf;
    
}

七、SSL+域名实现HTTPS

1、申请SSL

下载SSL证书文件上传到linux,在需要使用时,只需在nginx配置文件中添加相关配置信息即可。步骤二有使用案例

2、nginx 配置文件

如果网站采用HTTPS协议,需配置ssl相关信息,其他可省略。

#聊天室
# map 用于websocket Secure
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

server {
    listen 443 ssl;
    server_name  **.cn;  
	# server_name 后面为项目域名

    ssl_certificate /usr/local/nginx/conf/sll_crt/shaolulustar.cn_bundle.pem;
    ssl_certificate_key /usr/local/nginx/conf/sll_crt/shaolulustar.cn.key; 
	# ssl https 所需密钥密匙
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers HIGH:!aNULL:!MD5; 
    ssl_prefer_server_ciphers on; 
    
    #access_log  /var/log/nginx/host.access.log  main;

    client_max_body_size 128m;

    location /web-chat {
        proxy_pass 	http://212.64.16.106:19000/web-chat;
		proxy_read_timeout	 36000s;
	#  以下配置用于websocket Secure
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
    location / {
            root   html;
            index  index.html index.htm;
    }
}

 3、nginx开启SSL模块

在已安装的Nginx上开启SSL模块并配置https-腾讯云开发者社区-腾讯云 (tencent.com)

八、基本命令

命令需在/usr/local/nginx/sbin(默认安装路径)目录下运行。

1 ./nginx 启动
2 ./nginx -s stop 停止
3 ./nginx -s quit 安全退出
4 ./nginx -s reload 重新加载配置文件
5 ps aux|grep nginx 查看nginx进程

持续更新中。。。。。。

参考:

https://www.kuangstudy.com/bbs/1353634800149213186

Nginx详解(正向代理、反向代理、负载均衡原理)_张东明001的博客-NGINX开源社区

在已安装的Nginx上开启SSL模块并配置https-腾讯云开发者社区-腾讯云 (tencent.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值