好了 , 让我们来试试吧: 1.启动 webapp , 注意启动绑定的端口要和 nginx 中的 upstream 设置的端口保持一致 。
2.更改 host:在 C:windowsSystem32driversetc 目录下的 host 文件中添加一条 DNS 记录
127.0.0.1 www.helloworld.com3.启动前文中 startup.bat 的命令
4.在浏览器中访问 www.helloworld.com , 不出意外 , 已经可以访问了 。
Https 反向代理一些对安全性要求比较高的站点 , 可能会使用 HTTPS(一种使用 ssl 通信标准的安全 HTTP 协议) 。
这里不科普 HTTP 协议和 SSL 标准 。但是 , 使用 nginx 配置 https 需要知道几点:
HTTPS 的固定端口号是 443 , 不同于 HTTP 的 80 端口 SSL 标准需要引入安全证书 , 所以在 nginx.conf 中你需要指定证书和它对应的 key 其他和 http 反向代理基本一样 , 只是在 Server 部分配置有些不同 。
#HTTP服务器server {#监听443端口 。443为知名端口号 , 主要用于HTTPS协议listen443 ssl;#定义使用www.xx.com访问server_namewww.helloworld.com;#ssl证书文件位置(常见证书文件格式为:crt/pem)ssl_certificatecert.pem;#ssl证书key位置ssl_certificate_keycert.key;#ssl配置参数(选择性配置)ssl_session_cacheshared:SSL:1m;ssl_session_timeout5m;#数字签名 , 此处使用MD5ssl_ciphersHIGH:!aNULL:!MD5;ssl_prefer_server_cipherson;location / {root/root;indexindex.html index.htm;}}负载均衡前面的例子中 , 代理仅仅指向一个服务器 。
但是 , 网站在实际运营过程中 , 大部分都是以集群的方式运行 , 这时需要使用负载均衡来分流 。
nginx 也可以实现简单的负载均衡功能 。
假设这样一个应用场景:将应用部署在 192.168.1.11:80、192.168.1.12:80、192.168.1.13:80 三台 linux 环境的服务器上 。网站域名叫 www.helloworld.com , 公网 IP 为 192.168.1.11 。在公网 IP 所在的服务器上部署 nginx , 对所有请求做负载均衡处理(下面例子中使用的是加权轮询策略) 。
nginx.conf 配置如下:
http {#设定mime类型,类型由mime.type文件定义include/etc/nginx/mime.types;default_typeapplication/octet-stream;#设定日志格式access_log/var/log/nginx/access.log;#设定负载均衡的服务器列表upstream load_balance_server {#weigth参数表示权值 , 权值越高被分配到的几率越大server 192.168.1.11:80weight=5;server 192.168.1.12:80weight=1;server 192.168.1.13:80weight=6;}#HTTP服务器server {#侦听80端口listen80;#定义使用www.xx.com访问server_namewww.helloworld.com;#对所有请求进行负载均衡请求location / {root/root;#定义服务器的默认网站根目录位置indexindex.html index.htm;#定义首页索引文件的名称proxy_passhttp://load_balance_server ;#请求转向load_balance_server 定义的服务器列表#以下是一些反向代理的配置(可选择性配置)#proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_header X-Forwarded-For $remote_addr;proxy_connect_timeout 90;#nginx跟后端服务器连接超时时间(代理连接超时)proxy_send_timeout 90;#后端服务器数据回传时间(代理发送超时)proxy_read_timeout 90;#连接成功后 , 后端服务器响应时间(代理接收超时)proxy_buffer_size 4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 4 32k;#proxy_buffers缓冲区 , 网页平均在32k以下的话 , 这样设置proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 64k;#设定缓存文件夹大小 , 大于这个值 , 将从upstream服务器传client_max_body_size 10m;#允许客户端请求的最大单文件字节数client_body_buffer_size 128k;#缓冲区代理缓冲用户端请求的最大字节数}}}负载均衡策略Nginx 提供了多种负载均衡策略 , 让我们来一一了解一下:
负载均衡策略在各种分布式系统中基本上原理一致 , 对于原理有兴趣 , 不妨参考 负载均衡
轮询upstream bck_testing_01 {# 默认所有服务器权重为 1server 192.168.250.220:8080server 192.168.250.221:8080server 192.168.250.222:8080}加权轮询upstream bck_testing_01 {server 192.168.250.220:8080weight=3server 192.168.250.221:8080# default weight=1server 192.168.250.222:8080# default weight=1}最少连接upstream bck_testing_01 {least_conn;# with default weight for all (weight=1)server 192.168.250.220:8080server 192.168.250.221:8080server 192.168.250.222:8080}加权最少连接upstream bck_testing_01 {least_conn;server 192.168.250.220:8080weight=3server 192.168.250.221:8080# default weight=1server 192.168.250.222:8080# default weight=1}
推荐阅读
- RedHat Linux系统U盘安装图文教程
- 服务器之间实现免密登录的简易教程
- 怎样做淘宝客在淘宝上拿佣金 怎么开通淘宝客赚佣金教程
- 性能提升9倍的 nginx 线程池,你了解多少?
- 简单DIY美甲步骤教程
- Go 语言 Web 框架 Echo 系列教程
- 淘宝关键词优化技巧教程 淘宝怎样优化关键词
- 安卓|哔哩哔哩车机版开放下载:页面极简、支持弹幕
- 升了iOS14连奶茶都点不了?保姆级降级教程在这
- 开设淘宝店的主要流程 淘宝店运营流程教程
