大纲
1.什么是Nginx
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
由俄罗斯的程序设计师Igor Sysoev所开发,官方测试Nginx能够支支撑5万并发链接(tomcat 500),并且cpu、内存等资源消耗却非常低,运行非常稳定。
2.应用场景
1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用Nginx做反向代理。
并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
3.Nginx安装\启动\访问
3.1.安装环境准备
需要安装gcc的环境(就如同tomcat要运行需要jdk环境一样) gcc环境安装 sudo apt-get update
sudo apt-get install gcc
安装完了可以执行
gcc --v
的命令来查看版本,输出如下:
安装Nginx时需要先安装依赖包
首先使用dpkg命令查看自己需要的软件是否安装。
例如查看zlib是否安装:
root@ubuntu:/usr/java/Nginx-1.8.0# dpkg -l | grep zlib
解决依赖包openssl安装,命令:
sudo apt-get install openssl libssl-dev
解决依赖包pcre安装,命令:
sudo apt-get install libpcre3 libpcre3-dev
解决依赖包zlib安装,命令:
sudo apt-get install zlib1g-dev
3.2.安装步骤
下载Nginx:
官方网站:
使用的版本是1.8.0版本。
第一步:把Nginx-1.8.0.tar.gz上传到linux系统 第二步:解压缩 [root@localhost ~]# tar zxf Nginx-1.8.0.tar.gz 第三步:使用configure命令创建一makeFile文件。 ./configure \ --prefix=/usr/local/Nginx \ --pid-path=/var/run/Nginx/Nginx.pid \ --lock-path=/var/lock/Nginx.lock \ --error-log-path=/var/log/Nginx/error.log \ --http-log-path=/var/log/Nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/Nginx/client \ --http-proxy-temp-path=/var/temp/Nginx/proxy \ --http-fastcgi-temp-path=/var/temp/Nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/Nginx/uwsgi \ --http-scgi-temp-path=/var/temp/Nginx/scgi 注意:启动Nginx之前,上边将临时文件目录指定为/var/temp/Nginx,需要在/var下创建temp及Nginx目录 [root@localhost sbin]# mkdir /var/temp/Nginx/client -p 第四步:make 第五步:make install
3.3.启动
进入sbin目录
root@ubuntu:/usr/local/Nginx/sbin# ./Nginx
检查是否启动:
关闭方式一:Nginx: root@ubuntu:/usr/local/Nginx/sbin# ./Nginx -s stop 关闭方式二: root@ubuntu:/usr/local/Nginx/sbin# ./Nginx -s quit 重启Nginx: 1、先关闭后启动。 2、刷新配置文件: root@ubuntu:/usr/local/Nginx/sbin# ./Nginx -s reload
3.4.访问
192.168.25.106:80
默认是80端口。
注意:是否关闭防火墙。
4.配置虚拟主机
就是在一台服务器启动多个网站。
如何区分不同的网站:
1、域名不同
2、端口不同
4.1.通过端口区分不同虚拟主机
/usr/local/Nginx/conf/Nginx.conf
可以配置多个server,配置了多个虚拟主机。
复制一个目录: root@ubuntu:/usr/local/Nginx# cp html/ html81 -r
添加虚拟主机:
#测试使用81端口,对应的根文件为:html81 server { listen 81; server_name localhost; location / { root html81; index index.html index.htm; } }
重新启动服务器
root@ubuntu:/usr/local/Nginx/sbin# ./Nginx -s stop
root@ubuntu:/usr/local/Nginx/sbin# ./Nginx
分别访问80端口和81端口
192.168.25.106:80
192.168.25.106:81
4.2.通过域名区分不通虚拟主机
域名就是网站。
DNS服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。
一级域名:
Baidu.com
二级域名:
Item.baidu.com
三级域名:
1.Image.baidu.com
修改window的hosts文件:(C:\Windows\System32\drivers\etc)
可以配置域名和ip的映射关系,如果hosts文件中配置了域名和ip的对应关系,不需要走DNS服务器。
下载小工具:https://pc.qq.com/search.html#!keyword=SwitchHosts
4.3.Nginx的域名配置
复制taobao目录: root@ubuntu:/usr/local/Nginx# cp html/ html-taobao -r
复制wfd360目录: root@ubuntu:/usr/local/Nginx# cp html/ html-wfd360 -r
添加如下两个节点
#测试使用都是用域名配置的80端口 www.taobao.com server { listen 80; server_name www.taobao.com; location / { root html-taobao; index index.html index.htm; } } #测试使用都是用域名配置的80端口 www.wfd360.com server { listen 80; server_name www.wfd360.com; location / { root html-wfd360; index index.html index.htm; } }
域名的配置:
192.168.25.128 www.taobao.com
192.168.25.128 www.wfd360.com
5.反向代理
5.1.什么是反向代理
正向代理
正向代理类似一个跳板机,代理访问外部资源。
举个例子:
我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
反向代理(Reverse Proxy)
实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
5.2.Nginx实现反向代理
需求:
两个域名指向同一台Nginx服务器,用户访问不同的域名显示不同的网页内容。
两个域名是www.wfd360.com和www.wfd361.com
Nginx服务器使用虚拟机192.168.25.106
第一步:安装两个tomcat,分别运行在8180和8280端口。
第二步:启动两个tomcat。
第三步:反向代理服务器的配置
#反向代理服务器的配置 upstream tomcat2 { server 192.168.25.106:8280; } server { listen 80; server_name www.wfd362.com; location / { # root html-wfd360; proxy_pass http://tomcat2; index index.html index.htm; } } upstream tomcat1 { server 192.168.25.106:8180; } server { listen 80; server_name www.wfd361.com; location / { proxy_pass http://tomcat1; index index.html index.htm; } }
第五步:配置域名
192.168.25.106 www.wfd360.com
192.168.25.106 www.wfd361.com
第六步:访问测试
5.3.负载均衡
如果一个服务由多条服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。
upstream tomcat2 { server 192.168.25.106:8180; server 192.168.25.106:8280; }
可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
upstream tomcat2 { server 192.168.25.106:8180; server 192.168.25.106:8280 weight=2; }
6.课程资料
相关资料:https://www.cnblogs.com/wfd360/p/11094333.html
完美!