当前位置: 首页 > 后端技术 > PHP

nginx配置文件详解(转载)

时间:2023-03-29 15:38:20 PHP

转载自北京漫游者自己的配置隐藏入口文件#定义运行Nginx的用户和用户组userwwwwww;#Nginx进程数,建议设置为等于CPU总核数。worker_processes8;#全局错误日志定义类型,[debug|资讯|公告|警告|错误|暴击]error_log/var/log/nginx/error.log信息;#进程文件pid/var/run/nginx.pid;#一个nginx进程打开的最大文件描述符数,理论值应该是最大打开文件数(系统值ulimit-n)除以nginx进程数,但是nginx分配请求不是统一的,所以建议使用ulimit-n的值保持一致。worker_rlimit_nofile65535;#工作模式和连接事件上限{#参考事件模型,使用[kqueue|rtsig|轮询|/开发/投票|选择|投票];epoll模型是一种高性能的网络I/O模型,如果在FreeBSD上运行,使用kqueue模型。使用epoll;#单个进程的最大连接数(最大连接数=连接数*进程数)worker_connections65535;}#设置http服务器http{includemime.types;#文件扩展名和文件类型映射表default_typeapplication/octet-#默认文件类型#charsetutf-8;#默认编码server_names_hash_bucket_size128;#服务器名哈希表大小client_header_buffer_size32k;#上传文件大小限制large_client_header_buffers464k;#设置请求缓冲区client_max_body_size8m;#设置请求缓冲区sendfileon;#启用高效文件传输模式。sendfile命令指定nginx是否调用sendfile函数输出文件。对于普通应用程序,它设置为打开。如果是用于下载应用程序,比如磁盘IO重负载的应用程序,可以设置为off来平衡磁盘。以及网络I/O处理速度,减轻系统负荷。注意:如果画面显示不正常,将此项改为关闭。自动索引;#启用目录列表访问,适用于下载服务器,默认关闭。tcp_nopush上;#防止网络阻塞tcp_nodelayon;#防止网络阻塞keepalive_timeout120;#长连接超时时间,单位是秒#FastCGI相关参数是为了提高网站性能:减少资源占用,提高访问速度。下面的参数可以从字面上理解。fastcgi_connect_timeout300;fastcgi_send_timeout300;fastcgi_read_timeout300;fastcgi_buffer_size64k;fastcgi_buffers464k;fastcgi_busy_buffers_size128k;fastcgi_temp_file_write_size128k;#gzip模块设置gzipon;#启动gzip压缩输出gzip_min_length1k;#最小压缩文件大小gzip_buffers416k;#压缩压缩冲区gzip_http_version1.0;#压缩版本(默认1.1,如果前端是squid2.5,请使用1.0)gzip_comp_level2;#压缩级别gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;#压缩类型,默认已经包含了text/html,下面就不用写了,写也没有问题,但是会有warn。gzip_varyon;#limit_zone爬虫$binary_remote_addr10m;#Useupstreamblog.ha97.com{#upstream负载均衡,权重就是权重,可以根据机器配置定义权重。weight参数表示权重值,权重值越高,被分配的概率越大。server192.168.80.121:80weight=3;server192.168.80.122:80weight=2;server192.168.80.123:80weight=3;}#配置虚拟主机server{#监听端口listen80;#域名可以有多个,用空格隔开server_namewww.ha97.comha97.com;indexindex.htmlindex.htmindex.php;根/data/www/ha97;#隐藏入口文件位置/{if(!-e$request_filename){rewrite^/(.*)$/index.php/$1last;}location~.*\.(php|php5)?${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;包括fastcgi.conf;}#图片缓存时间设置位置~.*\.(gif|jpg|jpeg|png|bmp|swf)${expires10d;}#JS和CSS缓存时间设置位置~.*\.(js|css)?${expires1h;}#log格式设置log_formataccess'$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/ha97access.logaccess;#为“/”/{启用反向代理位置proxy_passhttp://127.0.0.1:88;proxy_redirect关闭;proxy_set_headerX-Real-IP$remote_addr;#后台web服务器可以通过X-Forwarded-Forproxy_set_header获取用户真实IPX-Forwarded-For$proxy_add_x_forwarded_for;#下面是一些反向代理的配置,可选proxy_set_headerHost$host;client_max_body_size10m;#客户端可以请求的单个文件的最大字节数client_body_buffer_size128k;#bufferproxy缓冲客户端请求的最大字节数,proxy_connect_timeout90;#nginx与后端服务器连接超时(代理连接超时)proxy_send_timeout90;#后端服务器数据返回时间(代理发送超时)proxy_read_timeout90;#连接成功后,后端服务器响应时间(代理接收超时)proxy_buffer_size4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers432k;#proxy_buffersbuffer,设置平均网页32k以下proxy_busy_buffers_size64k;#高负载下的缓冲区大小(proxy_buffers*2)proxy_temp_file_write_size64k;#设置缓存文件夹的大小,如果大于这个值,就会从上游服务器发送}#设置查看Nginx状态的地址location/NginxStatus{stub_statuson;访问登录;auth_basic"Nginx状态";auth_basic_user_fileconf/htpasswd;#htpasswd文件内容可以通过apache提供的htpasswd工具生成。}#本地动静分离反向代理配置#所有jsp页面由tomcat或resinlocation处理~.(jsp|jspx|do)?${proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_passhttp://127.0.0.1:8080;}#所有静态文件都是nginx直接读取的,不需要tomcat或者resin定位~.*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)${过期15d;}location~.*.(js|css)?${过期1h;}}}