1.Nginx相关概念
1.1.什么是Nginx
Nginx* (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务 , 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
1.2.Nginx应用场景
1.2.1.http 服务器
Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
1.2.2虚拟主机
可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
1.2.3.反向代理,负载均衡
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
2.Nginx的安装
2.1.安装Nginx
windows:解压即可安装
2.3.Nginx配置文件
http {
...
#服务(主机)
server {
listen 86;
server_name 127.0.0.1;
location / {
root hrm-user;
index index.html index.htm;
}
}
location / 解释:
- “ / ” 所有的请求
- root hrm-user; 去 hrm-user目录中找资源
- index 主页配置
3.Nginx做静态网站部署
把静态网站放入html目录即可
4.Nginx虚拟主机
虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。
4.1.准备两个站点 目录
4.2.修改配置
http {
...
#用户站点
server {
listen 86;
server_name 127.0.0.1;
location / {
root hrm-user;
index index.html index.htm;
}
}
#主站点
server {
listen 99;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root hrm-home;
index index.html index.htm;
}
...
4.3.重启访问
127.0.0.1:86
127.0.0.1:99
5.域名
域名](https://baike.baidu.com/item/域名)([Domain Name](https://baike.baidu.com/item/Domain Name)),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。
5.1.域名解析步骤
- 浏览器输入的域名从本地hosts去匹配ip
- 去DNS服务器解析域名 , 找到对应的ip
- 使用ip进行访问
5.2.配置本地域名
5.2.1.配置Hosts
127.0.0.1 www.hrm.com
127.0.0.1 user.hrm.com
5.2.2.修改Nginx
...
server {
listen 80;
server_name user.hrm.com;
location / {
root hrm-user;
index index.html index.htm;
}
}
server {
listen 80;
server_name www.hrm.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root hrm-home;
index index.html index.htm;
}
...
注意:两个server的端口一样 ,域名不一样
6.Nginx做反向代理(负载均衡)
6.1.Nginx反向代理原理分析
6.2.Nginx反向代理配置
location / {
proxy_pass http://ip:端口;
index index.html index.htm;
}
6.3.负载均衡配置
http:{
...
upstream myservers{
ip_hash;
server 127.0.0.1:1010;
server 127.0.0.1:1011;
}
server {
listen 55;
server_name 127.0.0.1;
location / {
proxy_pass http://myservers;
index index.html index.htm;
}
}
访问:127.0.0.1:55