Nignx概念定义:
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,所以现在很多知名的公司都在使用nginx。
Nignx功能作用:
- HTTP服务器:
Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
- 虚拟主机
可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
- 反向代理,负载均衡。
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
Nignx的优点:
1、占内存小、可以实现高并发连接、处理响应快。
2、可以实现http服务器、虚拟主机、反向代理、负载均衡。
3、Nignx配置简单
4、可以不暴露真实服务器的IP地址
下面简单的介绍Nignx的功能作用的具体实现
- HTTP服务器:
Web server很重要一部分工作就是提供静态页面的访问,例如images, html page。nginx可以通过不同的配置,根据request请求,从本地的目录提供不同的文件返回给客户端。 打开安装目录下的nginx.conf文件,默认配置文件已经在http指令块中创建了一个空的server块,在nginx-1.14.2中的http块中已经创建了一个默认的server块。内容如下:
server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } |
我们可以nignx中的html目录下存放我们要访问的静态资源
|
我们可以通过http://localhost和网页的文件完整名称访问静态网
例如:http://localhost/hello.html,访问效果如下图所示
|
- 虚拟主机
就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录
首先要在C:\Windows\System32\drivers\etc\hosts文件添加
127.0.0.1 www.test.com
127.0.0.1 www.test2.com
然后在nignx的conf文件夹下的nginx.conf文件添加下面配置
server {
listen 80;
server_name www.test.com;
location / {
root html/domain1;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/domain1;
}
}
server {
listen 80;
server_name www.test2.com;
location / {
root html/domain2;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/domain2;
}
}
我们将本机虚拟成两台服务器,一台域名为www.test.com,访问的文件路径html/domain1,另一台域名为www.test2.com,访问的文件路径html/domain2。
直接用不同域名在浏览器中访问即可访问到路径中文件
示例如下:
- 反向代理
在hosts文件中加入配置如下
127.0.0.1 www.hongyu.com
127.0.0.1 www.hongyu2.com
准备两个tomcat,
将其中一个端口号改成8081。分别启动两个Tomcat服务器。
在nignx.conf文件中加入
server {
listen 80;
server_name www.hongyu2.com;
location / {
proxy_pass http://127.0.0.1:8081;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.hongyu.com;
location / {
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
通过不同的域名,便能够访问到不同的Tomcat服务器
- 实现负载均衡
在nignx.conf文件中加入
upstream backserver {
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name www.test.com;
location / {
proxy_pass http://backserver;
index index.html index.htm;
}
}