问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何配置Nginx做高可用

发布网友 发布时间:2022-04-22 03:47

我来回答

1个回答

热心网友 时间:2022-04-10 09:52

Nginx配置
Nginx 的配置主要是修改 /usr/local/nginx/conf/nginx,conf文件
#配置用户和用户组
user www www;
#工作进程数,建议设置为CPU的总核数
worker_processes 2;
#全局错误日志定义类型,日志等级从低到高依次为: debug | info | notice | warn | error | crit
error_log logs/error.log info;
#记录主进程ID的文件
pid /usr/local/nginx/nginx.pid;
#一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。但是由于nginx负载并不是完全均衡的,
#所以这个值最好等于最多能打开的文件数。执行 sysctl -a | grep fs.file 可以看到linux文件描述符。
worker_rlimit_nofile 65535;
#工作模式与连接数上限
events {
#工作模式,linux2.6版本以上用epoll
use epoll;
#单个进程允许的最大连接数
worker_connections 65535;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
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 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息
access_log logs/access.log main;
#服务器名字的hash表大小
server_names_hash_bucket_size 128;
#客户端请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,
#如果header过大,它会使用large_client_header_buffers来读取。
#如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request
#如果超过buffer,就会报HTTP 414错误(URI Too Long)
#nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(Bad Request)。
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
#客户端请求体的大小
client_body_buffer_size 8m;
#隐藏ngnix版本号
server_tokens off;
#忽略不合法的请求头
ignore_invalid_headers on;
#指定启用除第一条error_page指令以外其他的error_page。
recursive_error_pages on;
#让 nginx 在处理自己内部重定向时不默认使用 server_name 设置中的第一个域名
server_name_in_redirect off;
#开启文件传输,一般应用都应设置为on;若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载
sendfile on;
#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。
tcp_nopush on;
#告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,
#这样发送一小块数据信息时就不能立即得到返回值。
tcp_nodelay on;
#长连接超时时间,单位是秒
keepalive_timeout 65;
#gzip模块设置,使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。
gzip on; #开启gzip
gzip_min_length 1k; #最小压缩大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型
#upstream作负载均衡,在此配置需要轮询的服务器地址和端口号,max_fails为允许请求失败的次数,默认为1.
#weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。
upstream hostname {
server 192.168.2.149:8080 max_fails=0 weight=1;
server 192.168.1.9:8080 max_fails=0 weight=1;
}
#主机配置
server {
#监听端口
listen 80;
#域名
server_name hostname;
#字符集
charset utf-8;
#单独的access_log文件
access_log logs/192.168.2.149.access.log main;
#反向代理配置,将所有请求为http://hostname的请求全部转发到upstream中定义的目标服务器中。
location / {
#此处配置的域名必须与upstream的域名一致,才能转发。
proxy_pass http://hostname;
proxy_set_header X-Real-IP $remote_addr;
}
#启用nginx status 监听页面
location /nginxstatus {
stub_status on;
access_log on;
}
#错误页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
至此,nginx基本的负载均衡配置完成,实验中部署2台tomcat, 然后访问时返回不同的结果,在浏览器中输入地址,确实能看到不同的返回结果。nginx配置文件的内容还有待于继续学习。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
nfc技术可以把id卡的信息写入手机吗? 不知情的情况下不小心把公交车卡和手机贴在一起,居然读出了公交卡的余额... 奥运会李宁点燃火炬的时候在奔跑中,为啥一会快一会慢的,故意的还是节奏... 糖果的派对是什么意思 贵州的简称是什么字 强制执行公证执行受理法院明显不能授理但由于受了原告的钱所以... 玺悦怎么组成语? cv是处女的意思吗? CV圈跟配音圈的区别,主要区别就是圈子大小 ...我已经去法院申请强制执行了,要多久才能拿到钱? 如何在NGINX网站服务器中实施SSL完美前向保密技术 nginx稳定版本哪些 豆瓣:在哪儿买Nginx完全开发指南:使用C,C++和Op... nginx能完全卸载吗 怎么完全卸载nginx nginx能完全卸载吗? 企业的会议室应该怎么布置 此次经验不足,没有周全的考虑到会场哪些场合需要布置 会议室怎么装修,需要注意什么 年终总结大会场景布置的流程 大型会议会场布置需要什么? 会议场地改怎么布置? 哪个网站找工作可靠? 大型会场的布置需要哪些东西? 想要布置会议室,有什么方法? 视频会议室背景墙用什么颜色对摄像机好?有什么设... 会场布置要注意哪些细节? 会场布置有哪些需要注意的细节呢? 活动会场布置要注意哪些细节? 常见的会场布置形式有哪些 Centos下让nginx支持.htaccess文件实现伪静态的方法 nginx稳定版本哪些? nginx能扛得住5万并发,那更大呢,怎么办 Nginx /Lighttpd是否支持asp 创维电视蓝牙没办法配对? skyworthyk8515j怎么开蓝牙 创维65G9200篮牙单独听怎么使用 创维电视恢复出厂设置后如何连接蓝牙遥控器 创维电视伪蓝牙怎么和手机连接 创维电视58G2A的蓝牙怎样联接? 创维电视43E6000蓝牙怎么配对使用 创维电视遥控器怎么配 创维电视怎么连接话筒? QQ浏览器现在怎么私信 什么是库仑定律? 创维电视E690U-9R10蓝牙怎么打开? 我在百度极速版关注了一篇文章的作者,怎么才能私... 创维电视如何开蓝牙 库仑定律 百度百科 怎么在百度上和关注的人私信,是百度