nginx 网站服务

nginx配置文件分为4个部分:main(全局配置),server(主机配置),upstream(负载均衡服务器配置)和location(URL匹配特定位置的设置)。其中,main部分的设置将会影响其他所有的设置,server部分的资料主要用于指定主机和端口。upstream指定主要用于负载均衡,设置一系列的后端服务器,location部分主要用于匹配网页位置。四者的关系如下:server继承main,location继承server,upstream既不继承其他设置,也不被设置所继承。

参考:

www.linuxidc.com

main:常用的定义项

user  nobody;

定义工作进程使用的user和group身份。 如果省略group,nginx会使用与user相同的组名。

worker_processes  4;

定义工作进程的数量。

worker_cpu_affinity 0001 0010 0100 1000;

将每个工作进程分别绑定至不同的CPU

error_log  logs/error.log  error;

第一个参数定义了存放日志的文件,第二个参数定义日志级别。

pid        logs/nginx.pid;
   定义存储nginx主进程ID的file

worker_rlimit_nofile  40960;

修改工作进程的打开文件数的最大值限制(RLIMIT_NOFILE),用于在不重启主进程的情况下增大该限制。

events:常用的定义项

worker_connections  10240;

设置每个工作进程可以打开的最大并发连接数。

https:常用的定义项

default_type  application/octet-stream;

定义响应的默认MIME类型。

log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘

‘$status $body_bytes_sent "$http_referer" ‘

‘"$http_user_agent" "$http_x_forwarded_for" "$upstream_response_time"‘;

指定日志的格式。$remote_addr:客户端的IP $remote_user: 客户端用户名称  $time_local:访问时间和时区  $request:请求的URI和HTTP协议  $status:HTTP请求状态  $body_bytes_sent:发送给客户端文件内容大小  $http_referer:url跳转来源  $http_user_agent:用户终端浏览器等信息  $http_x_forwarded_for: 客户端的真实IP   $upstream_response_time:请求过程中,upstream响应时间.

access_log off;

关闭访问日志

server_tokens off;

是否在错误页面或者服务器Hearder头中输出Nginx的版本号给客户端览器

server_info off;

是否在错误页面显示URL、服务器名称和出错时间

server_tag off;

自定义设置HTTP响应的server头,‘off’可以禁止返回server头。如果什么都不设置,就是返回默认Nginx的标识

sendfile off;

禁用sendfile()函数(sendfile()函数是高效的用于数据拷贝在两个文件描述符之间的操作函数)

tcp_nodelay on;

使用套接字选项TCP_NODELAY,仅适用于keep-alive链接

keepalive_timeout  5;

设置keepalive链接超时时间(s)

gzip on;

开启或者关闭gzip模块

gzip_min_length  1k;

设置允许压缩的页面最小字节数(默认值0)

gzip_buffers     4 16k;

设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流(4 16k:代表以16k为单位,按照原始数据大小以16k为单位的4倍申请内存)

gzip_http_version 1.1;

识别http的协议版本号

gzip_comp_level 4;

gzip的压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度慢

gzip_types       text/plain application/x-javascript application/javascript text/css application/xml;

匹配类型进行压缩

gzip_vary on;

给http加个vary头给代理服务器用,根据客户端的HTTP头来判断,是否需要压缩

server_names_hash_bucket_size 128;

指定服务器名称哈希表的框大小(默认值32/64/128)

client_header_buffer_size 32k;

设置客户端请求的Hearder头缓存区大小

large_client_header_buffers 4 32k;

设置客户端请求的Hearder头的最大值

client_max_body_size    10m;

设置客户端请求内容的最大值(M)

client_body_buffer_size 128k;

指定客户端请求内容的缓冲区大小,如果内容大于缓冲区,请求的内容或者部分请求内容将被写入临时文件

proxy_connect_timeout   300;

设置跟后端服务器连接超时的时间,发起捂手等待响应的超时时间。

proxy_send_timeout      300;

指定代理服务器转发请求的超时时间,如果代理服务器超过这个时间,任没有发送数据到后端服务器,nginx将关闭该次链接

proxy_read_timeout      300;

设置从后端被代理服务器读取应答内容的超时时间,它决定nginx等待多长时间来获取一个请求的应答

proxy_buffer_size       128k;

该指令用于设置从被代理服务器获取的第一部分应答信息的缓冲区大小这个缓冲区间会保存用户的头信息以供nginx进行规制处理,一般只要保留下头信息即可

proxy_buffers           32 128k;

该指令用于设置从被代理服务器读取应答信息的缓冲区数目和大小,一个缓冲区的大小相等于网页的大小

proxy_busy_buffers_size 128k;

系统很忙的时候可以申请更大的proxy_buffers缓冲区

proxy_temp_file_write_size 128k;

设置写入proxy_temp_file临时目录的数据大小,可以防止一个工作进程阻塞太长的时间

proxy_ignore_client_abort on;

如果客户端自身终止请求,防止中断代理请求

proxy_next_upstream error  timeout  invalid_header  http_500  http_502  http_503  http_504  ;                                                       该指令用于设置当在那种情况下,将请求发送到下一台服务器。在upstream负载均衡代理服务器池中,假设后端的一台服务器无法访问或者返回指定错误响应代码时,可以使用改指令将请求转发到池中的下一台服务器

include vhosts/*;

将另一个file,或者匹配指定mask的文件,包含到配置中。

##########################################################################################

后端使用的是tomcat

upstream  tomcat_web  {

server      127.0.0.1:8080;

server      192.168.0.2:8080;

keepalive 24;

激活对上游服务器的连接进行缓存。参数设置每个worker进程与后端服务器保持连接的最大数量。这些保持的连接会被放入缓存。 如果连接数大于这个值时,最久未使用的连接会被关闭。

check interval=3000 rise=2 fall=3 timeout=10000 type=http;

interval:向后端发送的健康检查包的间隔。

fall(fall_count):如果连续失败次数达到fall_count,服务器就被认为down。

rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。

timeout: 后端健康请求的超时时间。

type:健康检查包的类型,现在支持以下多种类型

1,tcp:简单的tcp连接,如果连接成功,就说明后端正常。

2,ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。

3,http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。

4,mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。

5,ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。

check_http_send "HEAD / HTTP/1.0\r\n\r\n";

配置http健康检查包发送的请求内容。

check_http_expect_alive http_2xx http_3xx;

该指令指定HTTP回复的成功状态,默认认为2XX和3XX的状态是健康的

}

upstream  tomcat_uat  {

server 192.168.0.5:8088;

server 192.168.0.6:8088;

keepalive 12;

}

limit_req_zone  $binary_remote_addr zone=one:10m rate=10r/m;

定义一块内存存储区,用来存储Session会话状态。通常可以设置为存储客户端IP的变量$binary_remote_addr Session会话状态分配了一个名为one的10MB内存存储区,现在了每秒只能接受10个IP的一次请求

###########################################################################################

server {

listen 80 default_server;

server_name     _;

access_log off;

if ($request_method !~* ‘GET|POST‘) {

return 403;  #屏蔽了请求方法除GET/POST以外的其他方法

}

rewrite ^ http://www.*****.com/ permanent;

}

server {

listen       80;

server_name www.*****.com **.com;

root   /data/webapps/******;

index  index.html index.htm;

if ($request_method !~* ‘GET|POST‘) {    #请求的方法

return 444;

}

if ($http_user_agent ~ ‘^$|JianKongBao‘) {    #是用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码

return 444;

}

if ( $query_string ~* "[\;‘\<\>]|\.\." ){  #请求中的参数

return 444;

}

###########################################################################################

location  / {

proxy_http_version  1.1;

proxy_pass          http://******;

proxy_set_header    Connection "";

proxy_set_header    X-Forwarded-For  $remote_addr;

proxy_set_header    Host $host;

access_log          logs/web/access.log  main;

error_log           logs/web/error.log  error;

}

###########################################################################################

以下是一个完整的官网在nginx上的简单运用

###########################################################################################

upstream  tomcat_car  {

server      192.168.0.8:8082;

server      192.168.0.9:8082;

keepalive 24;

check interval=3000 rise=2 fall=3 timeout=10000 type=http;

check_http_send "HEAD / HTTP/1.0\r\n\r\n";

check_http_expect_alive http_2xx http_3xx;

}

###########################################################################################

server {

listen       80;

server_name www.*****.com *****.com;

root   /data/webapps/car;

index  index.jsp;

proxy_intercept_errors     on;

error_page 404 /404.html;

#当后端服务器的响应状态码大于等于400时,决定是否直接将响应发送给客户端,亦或将响应转发给nginx由error_page指令来处理。

if ($request_method !~* ‘GET|POST‘) {

return 444;

}

if ($http_user_agent ~ ‘^$|JianKongBao‘) {

return 444;

}

if ( $query_string ~* "[\;‘\<\>]|\.\." ){

return 444;

}

location  / {

proxy_http_version  1.1;

proxy_pass          http://*********.com;

proxy_set_header    Connection "";

proxy_set_header    X-Forwarded-For  $remote_addr;

proxy_set_header    Host $host;

access_log          logs/peanutcar/access.log  main;

error_log           logs/peanutcar/error.log  error;

########################### browser local cache ####################

if ($uri ~* ‘\.(ico|gif|jpg|jpeg|bmp|png|txt|js|css|otf|svg|ttf)$‘) {

expires  1d;  #缓存时间1天

access_log off;

}

}

############################ active ############################

location ^~ ‘/active-web‘ {

proxy_http_version  1.1;

proxy_pass          http://********;

proxy_set_header    Connection "";

proxy_set_header    Host $host;

access_log          logs/hsactive/access.log main;

error_log          logs/hsactive/error.log  error;

if ($uri ~* ‘\.(ico|gif|jpg|jpeg|bmp|png|txt|js|css|otf|svg)$‘) {

access_log off;

}

limit_req zone=active burst=3;

limit_req_whitelist geo_var_name=white_ip geo_var_value=1;

}

}

时间: 2024-10-13 14:05:33

nginx 网站服务的相关文章

nginx网站服务于虚拟主机

   Nginx网站服务于虚拟主机 1:nginx的优点: 稳定性高 系统资源消耗低 http并发量处理能力好可支持30000-50000个并发请求 主要用于静态页面 以线程为单位,一个进程对应多个用户,(线程很少占用系统资源) 2:与Apache的对比: Apache主要用于动态页面 支持功能多 稳定性能高 Apache以进程为单位,一个用户对应一个进程(一对一) 3:nginx主要用于:电商,网站,社交,门户...... 4:安装及控制nginx 1.安装支持软件 [[email prote

Nginx网站服务+LNMP架构及应用部署

第2章:Nginx网站服务 防伪码:撑起坚强! Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000-50000个并发请求).正因如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务. 一.安装及运行 1.搭建yum仓库,安装支持软件 2.创建运行用户.组(nginx默认以nobody身份运行,不安全,所以需要创建用户) 3.编译安装nginx和解包 为了方便管理

Nginx 网站服务——虚拟主机配置

第1章 Nginx 网站服务 1.1 web网站服务介绍: 1.1.1 提供静态服务的软件 Apache:这是中小型Web服务的主流,Web服务器中的老大哥. Nginx:大型网站Web服务的主流,曾经Web服务器中的初生牛犊,现已长大. Nginx的分支Tengine(http://tengine.taobao.org/)目前也在飞速发展. Lighttpd:这是一个不温不火的优秀Web软件,社区不活跃,静态解析效率很高.在Nginx流行前,它是大并发静态业务的首选,国内百度贴吧.豆瓣等众多网

部署Nginx网站服务实现访问状态统计以及访问控制功能

Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求. Nginx的安装文件可以从官方网站http://www.nginx.org/下载,下面以Nginx1.12版本为例,基于CentOS7,部署Nginx网站服务. 安装Nginx 第一步源码编译安装 1. 安装支持软件 Nginx的配置及运行需要gcc . gcc-c++ . make . pcre.pcre-devel.zlib-de

Nginx网站服务——基础服务与访问控制

Nginx简述 Nginx是一款高性能,轻量级web服务软件,其稳定性高.系统资源消耗低, 对HTTP并发连接的处理能力高(单台物理服务器可支持30000~50000个并发请求). Nginx常用命令 nginx -t 检查配置文件语法 nginx 启动nginx服务 killall -3 nginx 停止nginx服务 killall -s QUIT nginx 停止nginx服务 killall -s HUP nginx 重载nginx服务 killall -1 nginx 重载nginx服

Nginx网站服务

一.简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件

搭建nginx网站服务及应用

实验环境: 服务器系统:Redhat 6.2             ip地址:192.168.10.1 客户机系统:Win7 64位 旗舰版   ip地址:192.168.10.2 系统环境:已搭建LAMP平台 1.搭建nginx服务并实现访问状态统计 [[email protected] ~]#yum -y install pcre-devel zlib-devel  #首先需要安装这两个工具 [[email protected] ~]#useradd -M -s /sbin/nologin

构建Nginx网站服务

随着计算机与Internet技术的蓬勃发展,各种Web站点成为直接面向用户的中坚力量,在各种网站服务器软件中,除了Apache外,还有一款轻量级的HTTP服务器软件--Nginx,其稳定性.高效的特性逐渐被越来越多的用户认可.本篇博客将搭建Nginx网站服务器,并配置基于域名的虚拟Web主机 Nginx的基本配置 Nginx是由俄罗斯的Igor Sysoev专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30 000-50 

nginx网站服务(下)

第1章 回顾 1.1 nginx软件服务 1.1.1 软件概念以及特性介绍 1. 可以实现高并发访问处理,消耗资源小 2. 软件知识功能很多(web服务功能  反向代理功能  缓存功能) 3. 利用异步网络IO模型,实现快速处理用户请求(epoll) 1.1.2 软件部署过程 1)下载解压软件(nginx.org) 2)安装依赖软件 openssl-devel  pcre-devel 3)创建出一个worker进程管理用户 4)进行nginx软件编译安装 a 进行软件配置     ./confi

Centos 7部署Nginx网站服务

一.Nginx服务基础 Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求).正因为如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供Web服务. 1.Nginx服务的优势 Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连: 内存消耗少:在