- 浏览: 599517 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
为什么使用Nginx
1.高并发性 内部采用epoll的方式 而Apache则采用select方式
2.内存消耗少
3.成本低廉
4.配置简单
5.支持REWRITE对不同的URL进行不同的处理
6.因为可以采用GZIP 所以耗费的宽带较少
7.支持热部署
安装成功后可以输入 localhost来进行测试
使用域名时需要在C:\Windows\System32\drivers\etc\hosts文件下添加域名
如:
127.0.0.1 xxxx.com
图片或者页面静态信息放入html或images文件夹下时 需要注意是否要整个项目加进去还是单个文件夹
如果有url有项目名 则需要加入整个项目 如果没有则单个文件夹就行
location ~ .*\.(gif|jpeg|jpg|png)${
root images
}
NGINX可以对URL进行过滤操作 比如url中包含lan的则重定向rewrite到相应的页面
location ~ lan
rewrite lan /index.html;# 其中index.html是项目下面的index.html页面
}
Linux下安装 Nginx
--NGINX 配置文件 nginx.conf
如果不采用ip_hash进行分发则需要考虑SESSION共享的问题
Nginx建议如果能解决应用服务器SESSION共享问题则还是不采用ip_hash的方式
ip_hash不能解决负载均衡
如果考虑使用权重来解决负载均衡 则必须把SESSION共享问题处理。。
权重越高 分配到的客户端请求数就越多
双机高可用 实现故障转移和高可用
一台主服务器(提供负载均衡) 一台备热服务器(空闲状态)
1.高并发性 内部采用epoll的方式 而Apache则采用select方式
2.内存消耗少
3.成本低廉
4.配置简单
5.支持REWRITE对不同的URL进行不同的处理
6.因为可以采用GZIP 所以耗费的宽带较少
7.支持热部署
安装成功后可以输入 localhost来进行测试
使用域名时需要在C:\Windows\System32\drivers\etc\hosts文件下添加域名
如:
127.0.0.1 xxxx.com
图片或者页面静态信息放入html或images文件夹下时 需要注意是否要整个项目加进去还是单个文件夹
如果有url有项目名 则需要加入整个项目 如果没有则单个文件夹就行
location ~ .*\.(gif|jpeg|jpg|png)${
root images
}
NGINX可以对URL进行过滤操作 比如url中包含lan的则重定向rewrite到相应的页面
location ~ lan
rewrite lan /index.html;# 其中index.html是项目下面的index.html页面
}
Linux下安装 Nginx
tar -zxvf nginx-xx.tar.gz cd nginx-xx ./configure make sudo make install 默认安装到 /usr/local/nginx
-- 信号量 平滑启动 kill -HUP Nginx进程号 --读取新的配置文件如果成功则运行新的工作进程 然后从容的关闭旧的工作进程 --如果失败则继续使用旧的工作进程 --Nginx支持以下信号量 kill -TERM,INT Nginx进程号 -- 快速关闭 kill -HUP Nginx进程号 -- 平滑重启 kill -QUIT Nginx进程号 -- 从容关闭 kill -USER1 Nginx进程号 --重新打开日志文件 用于日志切割 kill -USER2 Nginx进程号 --平滑升级可执行文件
--NGINX 配置文件 nginx.conf
--使用的用户和组 #user nobody; --指定工作衍生进程数 worker_processes 1; -- 设置错误日志 位置和级别 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { --允许的连接数 worker_connections 1024; } http { include mime.types; --设定MIME类型 在mime.types文件中 default_type application/octet-stream; --与Nginx相关的两个指令 log_format(日志格式)格式不能重复 和access_log(日志存放路径) log_format main '$remote_addr - $remote_user [$time_local] "$request" ' --remote_addr表示反向代理服务器的地址 '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; --remote_addr nginx服务器IP地址 $request请求响应类型 POST 或 GET $status 请求状态 $body_bytes_sent文件内容大小 --"$http_referer"请求的主体 $http_user_agent 浏览器信息 access_log logs/access.log main; sendfile on;--使用sendfile函数进行输出文件 #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65;--连接超时时间 select * from test ; --设置分发器 upstream local_tomcat{ server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=3; #server 127.0.0.1:8088 weight=1 max_fails=2 fail_timeout=3; } #设置虚拟主机 server { listen 8000; # 设置端口号 server_name w.com; #设置域名 必须在host文件配置域名 # 使用gzip压缩响应数据 gzip on; gzip_buffers 32 4k ; # 200表示200B gzip_min_length 200; gzip_comp_level 6; # 规定响应时压缩的文件类型 gzip_types text/css text/xml application/javascript; location / { proxy_pass http://local_tomcat; } location ~ .*\.(gif|jpeg|jpg|png)${ expires 30d } } } --Nginx日志切割 mv /data/log/access.log /data/log/20150707.log --把名字改成每天的时间 kill -USER1 `cat /data/logs/nginx.pid` --然后使用信号量 进行重新生成一份 --如果需要按天进行切割 则需要用到 crontab进行配置 --使用gzip进行压缩输出 http{ gzip on; gzip_buffers 32 4k ; # 200表示200B 小于200B则不进行压缩 gzip_min_length 200; gzip_comp_level 6; # 规定响应时压缩的文件类型 gzip_types text/css text/xml application/javascript; } --Nginx缓存设置 expires 作用域 http server location --对项目中修改较少的文件进行设置 如图片设置 location ~ .*\.(jpg|gif|jpeg|png)${ expires 30d ; } --Nginx和Tomcat的配置 --静态html 图片 js css flash文件 使用Nginx来处理 .jsp .do 由反向代理 Tomcat HTTP服务器处理 --负载均衡 多台服务器以对称的方式组成一个服务器集合 --反向代理 以代理服务器来接受Internet上的请求 代理服务器对外就表现成一种服务器 --负载均衡配置 upstream 用于设置一组可以在 proxy_pass访问的服务器 upstream 是负载均衡的主要模块 使用环境 http 中 upstream local_tomcat{ server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=3; server 127.0.0.2:8088 weight=1 max_fails=2 fail_timeout=3; } server{ location / { proxy_pass http://local_tomcat ; } } # 动态的则访问 tomcat服务器 location ~ .*\.(jsp|action)$ { proxy_pass http://local_tomcat; } ## 静态资源则用代理服务器直接返回 location ~ .*\.(jpg|gif|jpeg|png|js|html|swf)$ { -- \ 表示的意思是把下一个字符当做特殊字符来处理 即转义字符 root html ; -- 把web部署代码拷贝一份到html文件夹下 即可(mms整个项目) } --类似访问路径 D:\Nginx\nginx-1.6.0/html/cmbexam/static/images/icon/param.png --Rewrite的功能主要是实现URL的重写 --能够根据不同的域名和URL 将不同的HTTP请求转发到后端服务器群组 Rewrite 规则相关的指令 rewrite if set return break = 表示等于 !=表示不等于 ~ 表示 区分大小写的匹配 ~* 不区分大小写的匹配 -- ~ 匹配正则表达式 -f 判断文件是否存在 -d 判断文件夹是否存在 -e 判断文件或文件夹是否存在 -x 判断文件是否可执行 return 用于把状态码返回给客户端 如 400 404 500 510等 location .*\.(sh|bash)$ { return 403 ; } location ~ .*\.(lan|wei|xing)$ { rewrite .*\.(lan|wei|xing)$ /index.html ; --rewrite 有两个参数 从一个URL跳转到另一个URL --index.html 表示在html目录下的index.html文件 } -- rewrite命令根据表达式来 重定向URI或修改字符串 -- rewrite命令使用环境 server location if rewrite URI1 URI2 break ; --从URI1重定向到URI2 break表示本条匹配完后终止后面的匹配 return 403 ; --last break 在重定向时地址栏 URL不会发生改变 last 表示rewrite完成 匹配完后会重新对所在的server发起请求 一般在根location使用last 而在非根location中使用break --rewrite在使用{}进行正则表达式时应该使用双引号 "" rewrite " ^/photo/([0-9]{2}) " /path/to/$1/$1$2.png --ip_hash指令能够将某个客户端的IP进行哈希算法然后定位到后端同一台服务器,它无法保证负载均衡 --如果要摘除某个服务器则 可以使用 down进行处理 -- 设置的权重则不起作用 upstream up_local { ip_hash ; server xxx.xxx01.com ; server xxx.xxx02.com ; server xxx.xxx03.com down ; --如果使用down则还是按照3台计算机的算法进行分配 如果是注释一台则 --采用2台计算机的分配方式 }
如果不采用ip_hash进行分发则需要考虑SESSION共享的问题
Nginx建议如果能解决应用服务器SESSION共享问题则还是不采用ip_hash的方式
ip_hash不能解决负载均衡
如果考虑使用权重来解决负载均衡 则必须把SESSION共享问题处理。。
权重越高 分配到的客户端请求数就越多
双机高可用 实现故障转移和高可用
一台主服务器(提供负载均衡) 一台备热服务器(空闲状态)
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; upstream local_tomcat{ server localhost:8088 weight=5; server localhost:8089 weight=5; } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.jsp$ { root html; fastcgi_pass 127.0.0.1:8089; fastcgi_index index.jsp; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # server { #设置虚拟主机 listen 8000; # 设置端口号 server_name z.com; #设置域名 location / { root html; # 设置目录 nginx主目录下的html目录 index z.html index.htm; # 定位的页面 } location ~ \.jsp$ { proxy_pass http://local_tomcat; } } # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
发表评论
文章已被作者锁定,不允许评论。
相关推荐
**Nginx源码学习资料概述** Nginx是一款高性能的HTTP和反向代理服务器,以其轻量级、高并发处理能力以及优秀的稳定性而受到广大Web开发者和运维人员的青睐。学习Nginx源码有助于深入理解其工作原理,提高在实际应用...
第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的...
Nginx完整学习笔记 Nginx 是一个功能强大、灵活、可扩展的 Web 服务器,以下是关于 Nginx 的详细知识点: 安装与部署 Nginx 依赖于 pcre 库,因此在安装 Nginx 之前需要先安装 pcre 库。使用 yum 安装 pcre 和 ...
Nginx是一款高性能的Web服务器和反向代理服务器,由伊戈尔·赛索耶夫在2004年创建,最初是为俄罗斯的搜索引擎rambler.ru开发的。...通过深入学习Nginx的配置和使用,可以有效地优化系统性能,提高用户体验。
**Nginx 全程学习资料全方面剖析** 在当今互联网技术日新月异的时代,高性能的Web服务器显得尤为重要。Nginx作为一个轻量级、高性能的HTTP和反向代理服务器,广泛应用于各类高并发场景,是搭建稳定、高效网站的关键...
个人整理的Nginx整理视频学习资料视频,内容丰富,供大家学习.大家相互帮助
《Nginx学习丛书:Nginx应用与提高》是一套深入探讨Nginx服务器的教程,涵盖了Nginx在各种场景下的应用和优化。这套资料的目的是帮助读者全面理解和掌握Nginx的强大功能,提升其在实际工作中的效能。 1. **第3章 ...
nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) 仅供学习交流! 后续会持续分享相关资源,记得关注哦! nginx学习笔记(软件+学习笔记) ...
Nginx应用技术指南总结 Nginx 作为一个流行的开源 Web 服务器软件,已经被广泛应用于各种网站和应用程序中。在本文中,我们将对 Nginx 的应用技术进行总结,涵盖 Nginx 的基础知识、安装配置、配置文件测试、启动和...
nginxLinux环境的安装;配置反向代理和负载均衡;负载均衡策略;解决session共享;解决高并发方案
这是我自学nginx的学习笔记,上传只是为了更好的督促自己学习,如果你也有同感,加入一起学习吧。
Nginx学习 .
nginx配置location总结及rewrite规则写法
学习Nginx HTTP Server.pdf 清晰版
一、安装部署(以redhat安装nginx源代码版为例) 二、常用命令 三、nginx.conf配置解读 1.反向代理 2.静态资源 3.应用集群 4.ssl配置(nginx配置https ssl证书 首先要获取证书,可在万网或万维网等获取,然后...
Nginx.xmind-Nginx思维导图学习
**Nginx学习与配置详解** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效的性能和灵活的配置而备受青睐。本文将基于“张宴版Nginx学习 以及配置”这一主题,深入探讨Nginx的基础知识、配置技巧...
Nginx 1.18 是 Nginx Web 服务器的一个特定版本,它在 Linux 操作系统上运行。Nginx 是一个流行的开源 Web 服务器,以其高性能、高并发处理能力而闻名,...通过持续学习和实践,你可以成为熟练驾驭 Nginx 的专业人士。
这个“Nginx学习笔记.zip”压缩包文件包含了一系列关于Nginx的教程资源,分别命名为“第1节课”到“第5节课”,暗示着一个逐步深入的学习过程。 在第一节课中,我们通常会了解Nginx的基本概念和安装步骤。Nginx的...