Nginx反向代理及简单负载均衡配置
nginx配置文件主要分为六个区域:main section、events section、http section、sever section、location section、upstream section。
以下为Nginx的主要配置
#main module配置
use nobody; #设置运行用户
worker_processes 1; #设置启动进程,通常设置成cpu数量相当
error_log logs/error.log; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
pid logs/nginx.pid; #进程文件
#event module配置
events{
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于Linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024 #单个worker process进程最大并发连接数
}
#http module配置
http{
include mine.types; #设置mime类型
default_type application/octet-stream;
access_log logs/access.log; #设置访问日志
sendfile on; #表示调用sendfile函数输出文件,对于普通应用必须设置为on,若用来进行下载等高IO负荷的应用则设置为off,
平衡以平衡磁盘与网络I/O处理速度,降低系统的uptime.
Keepalive_timeout 65; #设置连接超时65s
gzip on; #开启gzip压缩输出
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认包含text/html
#server module配置
#做为服务器时虚拟主机相关配置
Server{
listen 80; #监听端口
server_name www.xxx.com; #主机名
access_log logs/xxx.com.access.log; #此虚拟主机访问日志
#设置默认请求
location ~ {
root /wwwroot; #定义站点根目录地址
index index.php index index.aspx index.html #站点默认文档名
}
#定义错误提示页面
error_page 400 /400.html;
error_page 500 502 503 /50x.html;
}
#做为反向代理服务器时,且实现负载均衡配置
#负载均衡配置,其中weight是权重,至越大,被分配的几率越大
#upstream module配置
upstream backserver {
#说明:若配置为以下方式,一定要保证网站可以通过IP地址方式能正常访问,如 http://192.168.1.10/
server 192.168.1.10:80 weight=1;
server 192.168.1.11:80 weight=2;
server 192.168.1.12:80 weight=2;
}
#代理服务器配置
Server{
listen 80; #监听端口
server_name www.xxx.com; #主机名
access_log logs/xxx.com.access.log; #此虚拟主机访问日志
#设置默认请求
location ~ {
proxy_pass backserver http://backserver;
proxy_set_header Host
$host;
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}
在浏览器中访问www.xxx.com时,Nginx会根据upstream中的服务列表进行再次请求,并将最终的数据返回给浏览器。
最新文章
- MySQL 保留字
- android 消息机制
- BZOJ4032 : [HEOI2015]最短不公共子串
- 【LeetCode】242 - Valid Anagram
- 缺少编译器要求的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor” 解决方案
- WCF - Overview
- (转) Android平台上关于IM的实践总结
- next数组
- Spring(三)之自动装配、表达式
- 实验吧_密码忘记了(vim编辑器+代码审计)&;天网管理系统(php弱比较+反序列化)
- 手把手教你使用 netlify 实现前端的 自动部署 + HTTPS
- Python 视频转字符画 - 进阶
- @Autowired和@Resource注解的一个意外重要区别
- mysql 查询数据中文乱码
- 本学期C#学习个人总结
- .Net 登陆的时候添加验证码
- github下载更新代码到本地
- InstallShield 静默安装
- 【原创】运维基础之Ansible(2)离线安装
- iOS 多语言的实现(本地化和国际化)
热门文章
- 表格行mouse经过时高亮显示
- Docker 为 ASP.NET Core Web 应用程序生成 Docker 映像,创建并运行多个容器
- Cookies读写
- PHP DDos的几个防御方法详解
- Vue:模板&;渲染函数学习
- python基础技巧综合训练题1
- python学习之老男孩python全栈第九期_day004作业
- Function,Object.creat();
- python的小数据池 is和== 以及再谈编码
- BZOJ2337: [HNOI2011]XOR和路径(期望 高斯消元)