文档章节

Nginx + Tomcat + HTTPS+负载均衡

小石头哥
 小石头哥
发布于 2018/08/03 16:34
字数 605
阅读 687
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

1.nginx 负载均衡配置 upstream tomcat_server {
        ip_hash;
        server 127.0.0.1:8081 weight=1;
        server 127.0.0.1:8082 weight=1;
} 2.nginx 配置 server { listen 80; server_name crm.xx.cn www.crm.xx.cn; if ($scheme != https) { # 强制 HTTP 跳转至 HTTPS # host 与 server_name 等价, redirect/permanent 分别为临时跳转/永久跳转 rewrite ^(.*)$ https://$server_name$1 permanent; } } server { listen 443 ssl; ssl on; server_name xx.cn www.xx.cn;

 location / {
        #每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器,可解决动态网页session共享问题
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto  $scheme;  
		
		proxy_http_version 1.1;
		proxy_connect_timeout 5s;
		proxy_read_timeout 10800s;
		proxy_send_timeout 12s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
		client_max_body_size  100m;
        proxy_pass http://tomcat_server;
    }
location /preview {
		proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto  $scheme;  
		proxy_http_version 1.1;
		proxy_connect_timeout 5s;
		proxy_read_timeout 10800s;
		proxy_send_timeout 12s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://localhost:8080;
}

 #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取
location ~ /upload/.*\.(png|jpg)$ { 
		 #每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器,可解决动态网页session共享问题
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto  $scheme;  
		proxy_http_version 1.1;
		proxy_connect_timeout 5s;
		proxy_read_timeout 10800s;
		proxy_send_timeout 12s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
		client_max_body_size  100m;
        proxy_pass http://tomcat_server;
  }
  location ~ /preview/.*\.(png|jpg)$ { 
		 #每个请求按照ip的hash结果分配,同一个ip的访客固定访问一个后端服务器,可解决动态网页session共享问题
       proxy_next_upstream http_502 http_504 error timeout invalid_header;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto  $scheme;  
		proxy_http_version 1.1;
		proxy_connect_timeout 5s;
		proxy_read_timeout 10800s;
		proxy_send_timeout 12s;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://localhost:8080;
  }
  
 location ~ .*\.(js|css|png|jpg)$ { 
		root html/static;
		#expires定义用户浏览器缓存的时间为3天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
		if (-f $request_filename) { 
			expires 3d;
		} 
  }
 ssl_certificate   /home/nginx/crmcert/xxxx.pem;
 ssl_certificate_key  /home/nginx/crmcert/xxxxx.key;
 ssl_session_timeout 5m;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on; 
}
3 tomcat server.xml 配置
找到<Connector port="8080" protocol="HTTP/1.1" 这一行,修改为
<Connector port="8080" protocol="HTTP/1.1"
             connectionTimeout="20000"
            redirectPort="443"
            proxyPort="443" />

然后修改HOST里的value值,我这里修改为 <Host name="xx.cn" appBase="webapps" <!--这里的name要与nginx配置文件里的server_name保持一致--> unpackWARs="true" autoDeploy="true">

     <Valve className="org.apache.catalina.valves.RemoteIpValve"
              remoteIpHeader="x-forwarded-for"
               remoteIpProxiesHeader="x-forwarded-by"
               protocolHeader="x-forwarded-proto" />
  </Host>
小石头哥

小石头哥

粉丝 8
博文 19
码字总数 14635
作品 0
广州
后端工程师
私信 提问
加载中
请先登录后再评论。
记一次失败的Perl + Nginx + FastCGI 配置过程

这两天心血来潮,不知道为什么和 Perl + Nginx + FastCGI 配置 耗上了。但是失败了,记录如下: 1)安装Nginx 1.4.3 ,我的是WINDOWS 7 系统,修改配置文件如下: location ~ .(pl|cgi|perl)?...

通吃岛-低手哥
2013/10/27
1.8K
7
HTTPS切换工具--HttpsSwitcher

HttpsSwitcher 是一个帮你进行 HTTPS 切换的 Chrome 插件,本工具可以帮你尝试使用https打开指定的域名,点击本插件的浏览器图标后会自动切换本标 签页的http/https状态,并且会记住你的选择...

leehorsley
2013/01/26
1.1K
0
基于 ThinkPHP 的内容管理系统--歪酷CMS

歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,实现多管理员管理,程序辅助功能也基本实现了常见的文...

鲁大在线
2013/02/19
7.1K
2
PHP框架--XiunoPHP

XiunoPHP 是一款面向高负载应用的 PHP 开发框架,PHPer 通过它可以快速的简单的开发出高负载项目。 XiunoPHP 前身名为 Xiuno Framework,更名后版本号从 v1.0 开始计算。已经经过了多年的实际...

匿名
2013/03/20
2.5K
0
Nginx-Redis

Nginx-Redis 是为 nginx-perl 准备的异步 redis 客户端。 示例代码: use Nginx::Redis; ngxredis '127.0.0.1:6379', ['GET', 'mykey'], sub { my ($reply) = @; unless ($reply) { warn "er......

匿名
2012/11/19
3.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

汇总你在 Linux 上的命令使用情况

使用合适的命令,你可以快速了解 Linux 系统上使用的命令以及执行的频率。 汇总 Linux 系统上使用的命令只需一串相对简单的命令以及几条管道将它们绑定在一起。当你的历史记录缓冲区保留了最...

osc_bvincwvq
8分钟前
0
0
Hacker News 简讯 2020-08-15

最后更新时间: 2020-08-15 07:01 Welders set off Beirut blast while securing explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:383 | 评论:322 Factor......

FalconChen
今天
24
0
OSChina 周六乱弹 —— 老椅小猫秋乡梦 梦里石台堆小鱼

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑 :《MOM》- 蜡笔小心 《MOM》- 蜡笔小心 手机党少年们想听歌,请使劲儿戳(这里) @狄工 :腾讯又在裁员了,35岁以上清退,抖音看到...

小小编辑
今天
111
3
构建高性能队列,你不得不知道的底层知识!

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了如何将递归改写为非递归,其中,用到的数据结构主要是栈。 栈和队列...

彤哥读源码
今天
17
0
Anaconda下安装keras和tensorflow

Anaconda下安装keras和tensorflow 一、下载并安装Anaconda: Anaconda下载 安装步骤: 如果是多用户操作系统选择All Users,单用户选择Just Me 选择合适的安装路径 然后勾选这个,自动配置环境...

Atlantis-Brook
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部