nginx搭建
Nginx
代理:
(1) 正向代理:客户端(浏览器)需要配置代理服务器,通过一台代理服务器进行访问。
个人理解:(如:访问谷歌需要一个vpn一样。)
(2) 反向代理:客户端通过反向代理服务器转到xx服务器中,客户端是不需要进行任何配置,直接将请求给到反向代理服务器,反向代理服务器再将请求转到xx服务器,客户以为自己访问的是反向代理服务器,xx服务器得到了一定的安全保障。
个人理解:(反向代理服务器就相当于一个跳板机一样,客户直接是访问的跳板机,也只知道跳板机的地址。)
负载均衡:
当访问请求超过服务器的本身负载时,则服务器变得卡慢。为了实现一个负载均衡的效果。则需要一个东西来将这些访问请求分别分发(可以是均衡分发也可以是其他的的方法)到各个服务器,nginx就是在其中充当了一个反向代理服务器(分发器)的作用。
动静分离:
为了加快网站的解析速度,可以把静态页面和动态页面由不同的服务器来进行解析,加快了解析速度,也降低了原来单个服务的压力。
nginx服务器搭建:
搭建需要的软件链接:https://pan.baidu.com/s/1a5FBPXnNio0LAAcyw6sxOQ
提取码:5oy7
搭建nginx需要 nginx、openssl 、zlib 、gcc、pcre
其中nginx 跟pcre需要去互联网上进行下载其余的用yum即可安装。
一、上传安装包。
二、安装pcre、pcre依赖、nginx。
安装pcre依赖:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装pcre:
安装nginx:
[root@ml ~]# mkdir /usr/local/nginx && tar xf nginx-1.12.2.tar.gz -C /usr/local/nginx
[root@ml ~]# cd /usr/local/nginx/nginx-1.12.2
[root@ml nginx-1.12.2]# ./configure
[root@ml nginx-1.12.2]# make -j 4 && make install
[root@ml nginx-1.12.2]# echo $? #检查一下是否出现错误,返回0表示无误。
[root@ml nginx-1.12.2]# cd .. #安装完之后会自动在/usr/local/下创建一个nginx目录
[root@ml nginx]# sbin/nginx #执行启动脚本
注:本机ip为192.168.1.5 关闭防火墙以及selinux再进行访问。
Nginx的常用命令:
[root@ml ~]# cp nginx /usr/sbin/ #将nginx的脚本拷贝到/usr/sbin下,方便调用
[root@ml ~]# nginx –v #查看版本号
[root@ml ~]# nginx -s stop #关闭nginx
[root@ml ~]# nginx #启动nginx
[root@ml ~]# nginx -s reload #重新加载配置文件
nginx的配置文件------三大块(/usr/local/nginx/conf/nginx.conf):
一、 全局块:
从开始到events之上都成为全局块。主要是设置一些影响nginx服务器的整体运行指令。
如:worker_processes 1; 这个数值越大,可以支持的并发处理器越多。
二、 events块:
events块会影响nginx服务器与用户的网络连接。
如: worker_connections 1024; 表示最大连接数为1024。这个配置对性能影响较大,现实中灵活配置。
三、 http块(配置最为频繁,基本都会在这个模块进行配置):
http块包含有:http块、server块。
Nginx的反向代理1:
注:本实验只采用一台机器。
实现效果:打开浏览器,输入地址www.123.com,会自动跳转到本地linux的Tomcat服务器中。
一、安装Tomcat。
先上传tomcat文件。
[root@ml ~]# tar xf apache-tomcat-7.0.70.tar.gz
[root@ml ~]# java –version #查询一下jdk是否存在,Tomcat需要依赖于jdk环境
[root@ml ~]# cd apache-tomcat-7.0.70/bin/
[root@ml bin]# ./startup.sh #启动Tomcat
[root@ml bin]# netstat -atunp | grep 8080 #检查8080端口是否监听。
二、配置windows的hosts解析文件。
如果提示没有权限:
三、配置nginx主配置文件。
[root@ml ~]# cd /usr/local/nginx/conf/
[root@ml conf]# vim nginx.conf
[root@ml conf]# ../sbin/nginx -s reload #重启加载配置文件
Nginx的反向代理2:
实现效果:打开浏览器,
输入地址192.168.1.5:9090/a/会自动跳转到Tomcat:192.168.1.5:8080/a/
输入地址192.168.1.5:9090/b/会自动跳转到Tomcat:192.168.1.5:8081/b/
8081 8080 分别代表着两个不同的服务器
一、配置Tomcat。
由于本次实验我需要两个不同的端口来进行访问,所以我打算配置两台Tomcat。
上传包并解压。
[root@ml ~]# mkdir tmocat
[root@ml ~]# cp -a apache-tomcat-7.0.70 tmocat/
[root@ml ~]# vim tmocat/apache-tomcat-7.0.70/conf/server.xml #将里面的port=都随便改一改比如0变成1,下图这个是监听端口。
[root@ml ~]# cd tmocat/apache-tomcat-7.0.70/webapps/
[root@ml webapps]# mkdir a
[root@ml webapps]# echo 8081 >> a/index.html
[root@ml webapps]# tmocat/apache-tomcat-7.0.70/bin/startup.sh
[root@ml webapps]# cd ~/apache-tomcat-7.0.70/webapps/
[root@ml webapps]# mkdir b && echo 8080 >> b/index.html
[root@ml webapps]# ../bin/startup.sh
二、配置nginx代理。
[root@ml webapps]# vim /usr/local/nginx/conf/nginx.conf
在第85行这样自行添加。
[root@ml webapps]# /usr/local/nginx/sbin/nginx -s reload
测试:
Nginx的负载均衡:
注:本实验只采用一台机器。
实现效果:打开浏览器,
输入地址192.168.1.5:/b/会自动跳转到Tomcat:192.168.1.5:8080/b/
输入地址192.168.1.5:/b/会自动跳转到Tomcat:192.168.1.5:8081/b/
大致实现一个轮询(默认)的效果,8081 8080 分别代表着两个不同的服务器
一、配置Tomcat。
[root@ml ~]# cd tmocat/apache-tomcat-7.0.70/webapps/
#由于上一次实验已经定义了8081端口,在此就直接进入目录去创建了,8080也是已经做好的。
[root@ml webapps]# mkdir b && echo 8081 >> b/index.html
[root@ml webapps]# cd ../bin/
[root@ml bin]# ./startup.sh #进入bin目录重新启动一下
测试:
二、 配置nginx主配置文件。
[root@ml bin]# vim /usr/local/nginx/conf/nginx.conf
[root@ml bin]# /usr/local/nginx/sbin/nginx -s reload
测试:
每刷新一次网页,就会跳转到不同的网页(服务器)。
Nginx的动静结合:
静态放nginx,动态放Tomcat
[root@ml /]# cd data/
[root@ml data]# ls
[root@ml data]# mkdir tu
[root@ml data]# mkdir www
[root@ml data]# echo jingtai >> www/index.html
[root@ml data]# cd tu/ #上传一张图片。
[root@ml data]# vim /usr/local/nginx/conf/nginx.conf
[root@ml data]# /usr/local/nginx/sbin/nginx -s reload
Nginx WEB搭建:
默认首页存放位置。
定义其他存放目录(这用的是1.103主机):
[root@6 www]# mkdir /home/www/
[root@6 www]# echo 123 >> /home/www/index.html
[root@6 www]# vim /usr/local/nginx/conf/nginx.conf
基于端口进行访问:
[root@localhost nginx]# mkdir ml
[root@localhost nginx]# echo this is ml! >> ml/index.html
[root@localhost nginx]# vim conf/nginx.conf
[root@localhost nginx]# sbin/nginx -s reload
基于主机头进行访问:
[root@localhost nginx]# mkdir zhuji
[root@localhost nginx]# echo zhu ji tou >> zhuji/index.html
[root@localhost nginx]# vim conf/nginx.conf
配置文件中server{ }结束符在79行。所有我们在 80行这样写下配置。
[root@localhost nginx]# sbin/nginx -s reload
修改本机hosts文件,添加域名解析