发布网友 发布时间:2022-04-20 16:54
共2个回答
懂视网 时间:2022-04-12 22:51
Nginx的配置就好像做程序一样,其实很好玩。 笔记一下: server { listen 80; server_name www.aslibra.com; set $aslibra_auth ; if ( $http_cookie ~* aslibra_auth=(.+)(?:;|$) ){ set $aslibra_auth $1; } log_format main $proxy_add_x_forwarded_for -
Nginx的配置就好像做程序一样,其实很好玩。
笔记一下:
server {
listen 80;
server_name www.aslibra.com;
set $aslibra_auth "";
if ( $http_cookie ~* "aslibra_auth=(.+)(?:;|$)" ){
set $aslibra_auth $1;
}
log_format main '$proxy_add_x_forwarded_for - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" $aslibra_auth ';
access_log /Data/log/nginx-access.log main;
location / {
root /Data/webapps/www.aslibra.com/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
参考分割日志的脚本:
#!/bin/bash
log_dir="/Data/log"
time=`date +%Y%m%d`
/bin/mv ${log_dir}/nginx-access.log ${log_dir}/nginx-access.$time.log
kill -USR1 `cat /var/run/nginx.pid`
热心网友 时间:2022-04-12 19:59
Nginx配置Nginx的配置主要是修改/usr/local/nginx/conf/nginx,conf文件#配置用户和用户组userwwwwww;#工作进程数,建议设置为CPU的总核数worker_processes2;#全局错误日志定义类型,日志等级从低到高依次为:debug|info|notice|warn|error|criterror_loglogs/error.loginfo;#记录主进程ID的文件pid/usr/local/nginx/nginx.pid;#一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。但是由于nginx负载并不是完全均衡的,#所以这个值最好等于最多能打开的文件数。执行sysctl-a|grepfs.file可以看到linux文件描述符。worker_rlimit_nofile65535;#工作模式与连接数上限events{#工作模式,linux2.6版本以上用epolluseepoll;#单个进程允许的最大连接数worker_connections65535;}#设定http服务器,利用它的反向代理功能提供负载均衡支持http{#文件扩展名与文件类型映射表includemime.types;#默认文件类型default_typeapplication/octet-stream;#日志格式log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';#accesslog记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息access_loglogs/access.logmain;#服务器名字的hash表大小server_names_hash_bucket_size128;#客户端请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,#如果header过大,它会使用large_client_header_buffers来读取。#如果设置过小HTTP头/Cookie过大会报400错误nginx400badrequest#如果超过buffer,就会报HTTP414错误(URITooLong)#nginx接受最长的HTTP头部大小必须比其中一个buffer大,否则就会报400的HTTP错误(BadRequest)。client_header_buffer_size32k;large_client_header_buffers432k;#客户端请求体的大小client_body_buffer_size8m;#隐藏ngnix版本号server_tokensoff;#忽略不合法的请求头ignore_invalid_headerson;#指定启用除第一条error_page指令以外其他的error_page。recursive_error_pageson;#让nginx在处理自己内部重定向时不默认使用server_name设置中的第一个域名server_name_in_redirectoff;#开启文件传输,一般应用都应设置为on;若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载sendfileon;#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。tcp_nopushon;#告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,#这样发送一小块数据信息时就不能立即得到返回值。tcp_nodelayon;#长连接超时时间,单位是秒keepalive_timeout65;#gzip模块设置,使用gzip压缩可以降低网站带宽消耗,同时提升访问速度。gzipon;#开启gzipgzip_min_length1k;#最小压缩大小gzip_buffers416k;#压缩缓冲区gzip_http_version1.0;#压缩版本gzip_comp_level2;#压缩等级gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;#压缩类型#upstream作负载均衡,在此配置需要轮询的服务器地址和端口号,max_fails为允许请求失败的次数,默认为1.#weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。upstreamhostname{server192.168.2.149:8080max_fails=0weight=1;server192.168.1.9:8080max_fails=0weight=1;}#主机配置server{#监听端口listen80;#域名server_namehostname;#字符集charsetutf-8;#单独的access_log文件access_loglogs/192.168.2.149.access.logmain;#反向代理配置,将所有请求为http://hostname的请求全部转发到upstream中定义的目标服务器中。location/{#此处配置的域名必须与upstream的域名一致,才能转发。proxy_passhttp://hostname;proxy_set_headerX-Real-IP$remote_addr;}#启用nginxstatus监听页面location/nginxstatus{stub_statuson;access_logon;}#错误页面error_page500502503504/50x.html;location=/50x.html{roothtml;}}}至此,nginx基本的负载均衡配置完成,实验中部署2台tomcat,然后访问时返回不同的结果,在浏览器中输入地址,确实能看到不同的返回结果。nginx配置文件的内容还有待于继续学习。