一、什么是Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
说到反向代理,不得不说一下到底什么是反向代理,什么是正向代理
所谓正向代理,就是一个位于客户端和原始服务器之前的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并且指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用正向代理。
在我们的用户端浏览器设置,浏览器先访问代理地址,在转发请求,最后把请求结果返回。
正向代理即是客户端代理 , 代理客户端, 服务端不知道实际发起请求的客户端
那什么是反向代理,与正向代理恰恰相反,反向代理代理的是服务器/网站。以反代服务器负责接收客户端的请求,再传输给内网服务器/网站。
反向代理则是作用在服务端,是一个虚拟ip,对于用户请求,会转发到后端多个处理器的一台来处理请求。
反向代理即是服务端代理 , 代理服务端, 客户端不知道实际提供服务的服务端
这意味着有了反向代理,您永远不会与使用它的Web服务器进行直接通信。可以将它们看作web服务器或服务器集群的某种包装器。通过负载平衡和缓存,它们可以保护web免遭攻击,并提供更好的web性能。
二、为什么使用Nginx?
在互联网大的项目中,传统单个tomcat并发数量有限,如果并发量较大,则会产生一系列问题
tomcat中最大支持并发数是150,当然可以通过配置来增加
maxThreads="150" 最大并发数
虽然支持修改并发量,但是实际运用中,最大并发数和硬件性能的关系很大。
互联网的大型项目中,高并发一定是架构设计的重要元素之一。
常用的指标大概有响应时间,吞吐量,QPS,并发用户数,高可用还有高性能
高可用
只通过设计,使一个系统一直保持可用的状态
高性能
指服务器相应的速度快
吞吐量指单位时间处理的请求,QPS值每秒响应的请求,响应时间表示系统对请求做出的反应时间;
Nginx特点:
-
可扩展性好
-
高可靠性
-
热部署
-
高并发、高性能
三、Nginx下载
官方网址windows下载:nginx
下载完成解压,注意,Nginx目录所在的路径中不要有中文字符,也不建议有空格。
单击nginx.exe可以看到一闪而过,访问localhost即可看到Nginx 欢迎页。
1、Nginx配置文件说明
Nginx所有配置文件都在Nginx根目录conf子目录中
Nginx核心配置nginx.conf
我们的常用配置只需要在nginx.conf中调整server节点就可以了 在nginx.conf文件末尾有如下示例
# 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;
# }
#}
反向代理配置
server {
listen 80; #监听80端口
server_name blog.test.ken.io; #监听的域名
location / { #转发或处理
proxy_pass https://ken.io;
}
error_page 500 502 503 504 /50x.html;#错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
负载均衡配置
upstream serverswitch {
server 127.0.0.1:8080;
server 127.0.0.1;
}
server {
listen 80; #监听80端口
server_name ss.test.ken.io; #监听的域名
location / { #转发或处理
proxy_pass https://serverswitch;
}
error_page 500 502 503 504 /50x.html;#错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
验证配置
修改C:\Windows\System32\drivers\etc\hosts
文件将测试域名指向本机IP
127.0.0.1 blog.test.ken.io
127.0.0.1 ss.test.ken.io
重载Nginx配置
c: && cd c:\tools\nginx
nginx -s reload
然后浏览器访问域名即可验证
Nginx常用命令说明
命令 | 说明 |
---|---|
nginx -h | 查看帮助信息 |
nginx -v | 查看Nginx版本 |
nginx -s stop | 停用Nginx |
nginx -s quit | 优雅的停用Nginx(处理完正在进行中请求后停用) |
nginx -s reload | 重新加载配置,并优雅的重启进程 |
nginx -s reopen | 重启日志文件 |
- 本篇参考