Linux运维之路


nginx服务实战04: nginx反向代理和反向代理缓存服务器配置

admin 2019-07-18 353浏览 0条评论
首页/正文
分享到: / / / /

[TOC]

nginx反向代理tomcat服务案例

安装两台nginx服务才能完成该案例

实验主机:

10.0.0.20 java程序服务器

10.0.0.21 nginx反向代理服务器

配置之前 tomcat服务器 的默认启动访问截图:

将第一台服务器10.0.0.21 作为反向代理服务器的配置

修改配置文件:vim nginx.conf
===============================反向代理配置实例======================================
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

upstream 10.0.0.20 {                        #10.0.0.20为代理池名称,可以写英文名称,这里为了好记忆
        server 10.0.0.20:8080;				#反向代理池配置
}
    server {
        listen 80;
        server_name 10.0.0.21;       		#本机访问IP
        location / {
        proxy_pass http://10.0.0.20;		#反向代理池
    	proxy_set_header host $host;        #反向代理ip                     
		proxy_set_header X-Real-IP $remote_addr; #TCP连接的远端地址
		proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; #获取后端真实IP
		proxy_pass http://10.0.0.20;       #添加upstream池 名称(可以为英文,写IP为了好分辨)
        }

}
===============================反向代理配置实例======================================

注意: 添加这几段proxy配置是为了获取后端服务器地址,修改响应头

proxy_pass http://10.0.0.20; #反向代理池

proxy_set_header host $host; #反向代理ip

proxy_set_header host $host; #反向代理ip

proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for; #获取后端真实IP

以上配置完成后重新载入配置:

[root@leilei conf]# nginx  -t     #检查语法
nginx: the configuration file /application/nginx-1.14/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.14/conf/nginx.conf test is successful

[root@leilei conf]# nginx  -s stop    #停止服务
[root@leilei conf]# nginx             #启动服务

检查端口:
[root@leilei ~]# netstat -lntup

此时本机只有80端口并没有 tomcat中的8080端口存在,现在尝试访问10.0.0.21 ,是否可以访问到tomcat

如果可以访问到tomcat,则代表反向代理配置成功

. 10. 0.0.21反向代理10.0.0.20的tomcat 8080端口成功截图:

nginx反向代理缓存配置

一般用户访问web服务时,有很多内容是不会繁盛变化的,他门是静态内容,如果每次静态内容都

交由后端处理,这样会加大后端服务器压力,通过反向代理的缓存功能,我们可以把不变的内容都

存在反向代理服务器,在用户请求这些静态内容的时候,由反向代理直接向用户提供响应,这样可

以减轻后端服务器压力,下面讲解缓存的配置方法

10.0.0.21 反向代理服务
10.0.0.20 是我们后端的tomcat服务

反向代理缓存配置实例:

vim  nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

##第一步: http模块中定义缓存cache名为my_cache,并把缓存大小定义为100MB
client_max_body_size 100M;
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:100m max_size=10g
                inactive=100m use_temp_path=off;
##定义缓存cache



upstream 10.0.0.20 {
        server 10.0.0.20:8080;
}
    server {
        listen 80;
        server_name 10.0.0.21;
        location / {

##第二步 反向代理缓存配置

        proxy_set_header host $host;                                    #反向代理ip
        proxy_set_header X-Real-IP $remote_addr;                        #TCP连接的远端地址
        proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;    #获取后端真实IP

        proxy_cache my_cache;                      #调用http块定义的一个缓存
        proxy_cache_key $host$uri$is_args$args;    #指明一个key
        proxy_cache_valid 200 304 302 1d;          #定义哪些响应不返回

##反向代理缓存配置
        proxy_pass http://10.0.0.20;
        }

}

为了更清晰的知道缓存是否生效 我们可以在 10.0.0.21的反向代理服务器中查看缓存的文件是否存在

定义的缓存目录为:/tmp/nginxcache

[root@leilei conf]# ls /tmp/nginxcache   #直接查看没有任何文件

访问一次后再次查看:
[root@leilei conf]# tree -L 2 /tmp/nginxcache/
/tmp/nginxcache/
├── 0
│   ├── 7e
│   └── e1
├── 3
│   └── a9
├── 5
│   └── b0
├── 7
│   └── 6b
├── 9
│   └── c3
├── b
│   └── 9d
└── f
    └── 43

15 directories, 0 files

此时已经生成了缓存文件

看到缓存文件后,我们可以把后端的tomcat关闭,再次尝试访问,以证明我们的缓存服务器配置成功

[root@leilei ~]# ifconfig eth0|sed -n 2p
        inet 10.0.0.20  netmask 255.255.255.0  broadcast 10.0.0.255

[root@leilei ~]# /application/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /application/tomcat
Using CATALINA_HOME:   /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME:        /server/tools/jdk1.8.0_60
Using CLASSPATH:       /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar

[root@leilei ~]# ps -ef |grep java
root      33285  33029  0 09:04 pts/0    00:00:00 grep --color=auto java

再次尝试访问 10.0.0.21,看源服务器关闭的情况下,是否还能够再次访问,如果可以访问,则代表缓存成功

此时可以看出,我们的缓存服务器配置成功。即使源服务器 10.0.0.20中的tomcat服务被停止,内容被缓存到了10.0.0.21中的缓存服务器中,我们以然可以通过这台反向代理服务器获取到内容

最后修改:2019-07-18 09:20:00 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇

发表评论

评论列表

还没有人评论哦~赶快抢占沙发吧~