Nginx是一款高性能的http服务器,反向代理服务器,电子邮件(IMAP/POP3)代理服务器。
nginx能支持5万高并发链接,免费开源,cpu、内存等资源消耗非常低,运行稳定。
应用场景:
1、http服务器。能独立提供http服务,nginx可以作为服务器部署静态资源网站。
2、虚拟主机。一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。
3、反向代理,负载均衡。nginx可以做反向代理,使用服务器集群避免单个服务器的超负载,而nginx可以把请求转发到不同的服务器,而负载均衡就是可以使多台服务器平均分担压力,不会一台服务器宕机,另一台空闲。
1、安装gcc环境,nginx是c语言开发的,因此安装nginx需要安装gcc环境。
yun install gcc-c++
2、安装pcre库,nginx的http模块需要pcre来解析正则表达式,而pcre-devel是pcre开发的一个二次开发库。
yum install -y pcre pcre-devel
3、安装zlib库,zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip。
yum install -y zlib zlib-devel
4、安装openSSL,nginx不仅支持http协议,还支持https协议(在ssl协议上传输http),openSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。
yum install -y openssl openssl-devel
5、上传nginx的源码包tar.gz到linux(我上传到了/usr/local目录)
6、解压缩(local目录下出现一个 nginx-1.8.0目录)
tar -xvf nginx-1.8.0.tar.gz
7、 进入nginx-1.8.0目录,需要用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-1.8.0目录下多一个Makefile文件
8、nginx-1.8.0目录下,编译
make
9、nginx-1.8.0目录下,安装(local目录下出现一个nginx目录)
make install
10、因为在上面把临时文件目录指定为了/var/temp/nginx/client,而此文件不存在,因此需要创建此目录
mkdir /var/temp/nginx/client -p
11、进入nginx目录下的sbin目录
cd /usr/local/nginx/sbin
12、启动nginx
./nginx
13、访问虚拟机ip(默认端口为80)
14、nginx的关闭有两种:
方式一(非正常退出):./nginx -s stop
方式二(正常退出,保存配置再退出):./nginx -s quit
15、重新加载配置文件
./nginx -s reload
进入nginx目录
查看sbin目录:
在sbin目录下用./nginx命令启动nginx,或./nginx -s reload重启。
查看html目录:
其中index.html页面对应的是默认nginx启动页面:
50x.html页面对应的是:
查看conf目录:
查看nginx.conf配置文件:
index文件里面是准备好的静态资源,先将index文件夹上传到linux上
用fileZilla工具上传index文件夹到linux的/usr/local/nginx目录下
修改/usr/local/nginx/conf目录下的nginx.conf配置文件
修改完配置文件,重启nginx
就是把一台物理服务器划分出多个虚拟服务器。
regist文件里面是准备好的静态资源,先将regist文件夹上传到linux上。
用fileZilla工具上传regist文件夹到linux的/usr/local/nginx目录下。
修改/usr/local/nginx/conf目录下的nginx.conf配置文件,配置两个server
(除了上面配置了访问index目录的server,再配置一个server访问regist目录资源,端口号不一样)
访问:
80端口:
81端口:
域名是ip的对应,访问时输入ip地址+端口号,但ip不好记忆,便有了域名的出现。
baidu.com一级域名,map.baidu.com二级域名。。
dns解析过程:
一个域名对应一个ip,访问baidu.com—>去本地的host文件找有没有baidu.com对应的ip地址—>如果有,则通过80端口访问这个ip,如果没有,通过dns服务器去找域名和ip的对应关系。
总之,配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不需要走dns 服务器。
1、在/etc/hosts文件中设置域名ip映射关系
2、在nginx配置文件中修改ip为域名(/usr/local/nginx/conf/nginx.conf
3、刷新配置
在/usr/local/nginx/sbin下执行 ./nginx -s reload
4、访问
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
1、将一个项目打成war包部署到tomcat。
打成war包,打包后文件名为ROOT
2、把war包上传到tomcat目录的webapp目录下,/usr/local/apache-tomcat-8.5.83/webapps,webapps目录下原本里面的东西可以都删除,我把他们放在了副本文件夹里,把ROOT.war放到webapps目录下。
只所以设置打包后文件名为ROOT,因为/webapps/ROOT目录是tomcat默认目录,tomcat启动后默认加载webapps目录下的应用程序,它可以是文件夹,war包,jar包等形式。
3、启动tomcat
在/usr/local/apache-tomcat-8.5.83/bin下执行 ./startup.sh
4、访问,默认端口是8080,/usr/local/apache-tomcat-8.5.83/conf/server.xml可修改端口。
1、在上面的基础上,修改nginx配置文件/usr/local/nginx/conf/nginx.conf
之前的:
修改后:
2、nginx/sbin下刷新 ./nginx -s reload
3、启动tomcat和nginx后,访问www.htmltravel.com,nginx会作为代理,将请求再转发给tomcat服务器,访问192.168.93.129:8080。
负载均衡,负载均衡的前提是实现了集群,负载均衡提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
1、把刚才的tomcat复制三份,相当于三个tomcat服务器,修改端口号。
2、在tomcat1,2,3目录/conf/server.xml中分贝修改端口号为8081,8082,8083。
3、在tomcat1,2,3目录/bin下执行./startup.sh分别启动这个三个项目
4、为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。
5、修改nginx的配置文件 /usr/local/nginx/conf/nginx.conf
6、访问www.htmltravel.com,nginx代理可能访问192.168.93.129:8081,也可能访问192.168.93.129:8082和192.168.93.129:8083,三台服务器出现的概率各为33.3333333%。
7、可以修改概率的比重,例如2:1:1