Nginx

什么是Nginx

Nginx是高性能的HTTP和反向代理服务器.

Nginx是轻量级的支持高并发的WEB服务器.

WEB服务器的基本功能:基于REST架构风格,以统一资源描述符或者统一资源定位符作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务.

Nginx的特点

1.快

正常情况下,单次请求会得到更快的响应.

在高峰期,Nginx可以比其它WEB服务器更快地响应请求.

2.高可靠性

master进程在1个worker进程出错时可以快速拉起新的worker子进程提供服务.

3.高扩展性

4.低内存消耗

5.单机支持10万以上的并发连接

6.热部署

7.最自由的BSD许可协议

Nginx的作用

正向代理

负载均衡

反向代理

动静态分离

Nginx安装(默认编译与安装)

安装Nginx依赖

yum install -y pcre pcre-devel gcc gcc-c++ zlib zlib-devel openssl openssl-devel

下载并启动Nginx

创建目录 mkdir /usr/local/nginx

进入目录 cd /usr/local/nginx

下载 wget http://nginx.org/download/nginx-1.21.3.tar.gz

解压 tar -xzvf nginx-1.21.3.tar.gz

编译 执行① ./configure   执行②make   执行③make install

启动Nginx ./usr/local/nginx/sbin/nginx

检查是否启动成功 ps -ef|grep -v grep|grep nginx

验证

关闭防火墙

systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld

浏览器上通过IP+Port访问

例如:http://192.168.101.10/

通过域名访问Nginx配置

在Win10系统上安装虚拟机,在虚拟机上正常且正确安装Nginx后,通过192.168.101.10就可以访问到Welcome to nginx!.

如果要想通过域名访问需要在Win10的C:\Windows\System32\drivers\etc\hosts文件中做修改:

192.168.101.10 www.kong1.com


就可以通过www.kong1.com访问Welcome to nginx!.

例如:http://www.kong1.com/

Keepalived安装

rpm -qa keepalived
yum install keepalived -y

cd /etc/keepalived/
vi /etc/keepalived/keepalived.conf

安装JDK

手动安装JDK

下载JDK   https://www.oracle.com/java/technologies/downloads/#java8
创建JDK安装目录
mkdir /middleware/jdk/jdk1.8
tar -xzvf jdk-8u301-linux-x64.tar
vim /etc/profile

#JDK
export JAVA_HOME=/middleware/jdk/jdk1.8/jdk1.8.0_301
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile #使配置生效
可输入java/javac/java -version命令判断新配置的java环境是否正常


使用yum源安装JDK

查看yum库中都有哪些jdk版本 
yum search java|grep jdk 
选择指定的版本安装 
yum install java-1.8.0-openjdk 
安装完成后查看版本信息 
java -version

安装Tomcat

下载Tomcat   https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.72/bin/

创建Tomcat安装目录

mkdir /middleware/tomcat/apache-tomcat-8.5.72

tar -xzvf apache-tomcat-8.5.72.tar.gz

通过复制最终实现安装多个Tomcat

/app/apache-tomcat-srv01

/app/apache-tomcat-srv02

修改vim /etc/profile文件

#FirstTomcat
export CATALINA_BASE1=/app/apache-tomcat-srv01
export CATALINA_HOME1=/app/apache-tomcat-srv01
export TOMCAT_HOME1=/app/apache-tomcat-srv01

#SecondTomcat
export CATALINA_BASE2=/app/apache-tomcat-srv02
export CATALINA_HOME2=/app/apache-tomcat-srv02
export TOMCAT_HOME2=/app/apache-tomcat-srv02
 

修改/app/apache-tomcat-srv01/bin和/app/apache-tomcat-srv02/bin下的catalina.sh(也可以通过直接修改Tomcat的启停脚本来实现)

修改的位置为这个注释这# OS specific support.  $var _must_ be set to either true or false.
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1

修改的位置为这个注释这# OS specific support.  $var _must_ be set to either true or false.
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2

修改vim /app/apache-tomcat-srv01/conf/server.xml和vim /app/apache-tomcat-srv02/conf
/server.xml

srv01
HTTP访问端口
<Connector port="8001" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

负责接收其它HTTP服务器的请求端口
<Connector protocol="AJP/1.3"
               address="::1"
               port="8109"
               redirectPort="8443" />

监听Tomcat关闭的端口
<Server port="8105" shutdown="SHUTDOWN">



srv02
HTTP访问端口
<Connector port="8002" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

负责接收其它HTTP服务器的请求端口
<Connector protocol="AJP/1.3"
               address="::1"
               port="8110"
               redirectPort="8443" />

监听Tomcat关闭的端口
<Server port="8106" shutdown="SHUTDOWN">

启动srv01和srv02实例

通过浏览器访问192.168.101.10:8001和182.168.101.10:8002

修改Tomcat页面 vi /app/apache-tomcat-srv01/webapps/ROOT/index.jsp
<body>
        <p>Tomcat srv01 8001</p>

修改Tomcat页面 vi /app/apache-tomcat-srv02/webapps/ROOT/index.jsp

<body>
        <p>Tomcat srv02 8002</p>

这样修改就可以知道自己访问的是哪个Tomcat了.

负载均衡是做反向代理的目的之一.

Nginx实现反向代理配置实例

 然后修改虚拟机上的vi /usr/local/nginx/conf/nginx.conf配置

{
    upstream myserver {
        server 192.168.101.10:8001;
        server 192.168.101.10:8002;
    }



    server {
        listen       80;
        server_name  www.kong1.com;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://myserver;
        }
    }
}

Nginx实现负载均衡配置实例

{
    upstream myserver {
        server 192.168.101.10:8001 weight=1;
        server 192.168.101.10:8002 weight=6;
    }



    server {
        listen       80;
        server_name  www.kong1.com;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://myserver;
        }
    }
}

Nginx实现动静资源分离配置实例

{
	#负载均衡组
	#静态服务器组
	upstream static {
	    server 192.168.101.10:8001;
	}

	#动态服务器组
	upstream dynamic {
	    server 192.168.101.10:8002;
	}

	#静态资源主机
    server {
        listen       80;
        server_name  www.kong1.com;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://static;
        }
    }
}

Nginx实现正向代理

Nginx正向代理只能代理http/tcp,不能代理https请求.

正向代理代理的是客户端.

反向代理代理的是服务端.

一般情况下,正向代理是从内网服务器(客户端)访问Nginx,通过Nginx访问的外网资源.

一般情况下,反向代理是从外网访问Nginx,Nginx代理内网的服务器.

服务端(server)
应用在Nginx的server端,不需要server_name,需要添加一个resolver.


{
    #处理HTTP转发
    server {
        listen       80;
        resolver 192.168.101.10;
        resolver 8.8.8.8; #配置DNS解析IP地址(必需)
        resolver 114.114.114.114;
        resolver_timeout 5s; #超时时间

        location / {
            proxy_pass http://$host$request_uri; #设定http代理服务器的协议和地址
            root   html;
            index  index.html index.htm;
            proxy_pass http://static;
        }
    }

    #处理HTTPS请求
    server {
        listen       443;
        resolver 192.168.101.10;
        resolver 8.8.8.8; #配置DNS解析IP地址(必需)
        resolver 114.114.114.114;
        resolver_timeout 5s; #超时时间

        location / {
            proxy_pass https://$host$request_uri; #设定http代理服务器的协议和地址
            root   html;
            index  index.html index.htm;
            proxy_pass http://static;
        }
    }

}

客户端(client)
一次代理直接在shell执行
export http_proxy=http://192.168.101.10:8001

永久使用
vim /etc/profile
export htt_proxy=192.168.101.10

vim .bashrc
export http_proxy=http://192.168.101.10:8001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值