第一章 nginx 支持https 配置样例

  • 说明:https 段配置参数说明
Server 段::
listen 443 http2 spdy; #侦听443端口,并按照http2.0、spdy、http1.1 的顺序进行适用协议匹配,向下兼容。
ssl on; #开启ssl
ssl_certificate ../ssl/58_com-key/server.pem; #指定证书位置(线下测试证书在ssl.tar包里,需要将tar包上传至linux服务器上解压,在子目录中选用一套证书及私钥使用,推荐使用58_com-key下的证书和私钥)
ssl_certificate_key ../ssl/58_com-key/server.key; #指定证书私钥位置
ssl_session_timeout 10m; # ssl session超时时间
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #ssl 链路支持协议
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; #ssl加密支持套件
ssl_prefer_server_ciphers on;#优先匹配服务端加密套件 location 段:
proxy_set_header HTTPS-Tag "HTTPS"; #设置HTTPS_TAG标识,方便程序认读
proxy_set_header X-Forwarded-Proto $scheme; #设置协议头传递变量 使用X-Forwarded-Proto进行协议的判定识别,需要在tomcat配置中添加内容:#使用X-Forwarded-Proto传递协议的条件是因为:在使用相对协议做跳转时,程序需要读取协议头再做跳转。而代理传递给后端的协议永远都是http协议,而真正的协议头https并没有传递成功。$scheme变量可以获取到用户访问使用的真正协议。将$scheme 变量赋值给 X-Forwarded_Proto 变量向后端(tomcat)传递协议可以避免这个问题。但是这时候tomcat使用X-Forwarded-For来获取用户IP可能存在问题。需要更换获取变量为X-Real-IP。
Tomcat-server.xml配置:
在Engine段添加: <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>

线上配置样例:

HTTP-80 段详细配置:

server {
listen 80;
server_name example.58.com;
access_log /opt/log/nginx/example.58.com/example.58.com_access.log main;
error_log /opt/log/nginx/example.58.com/example.58.com_error.log error;
charset utf-8; #### by dongange ####
set $remote_address $http_x_forwarded_for; if ( $remote_address !~ "[0-9]" ) {
set $remote_address $remote_addr;
}
#### ----------- #### location / {
proxy_pass http://example_pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_address;
proxy_set_header HTTPS-Tag "HTTP";
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 = http://404.58.com/404.html?from=$host$request_uri;
}

HTTPS-443 段详细配置配置:

server {
listen 443 http2 spdy;
server_name example.58.com;
access_log /opt/log/nginx/example.58.com/example.58.com_https_access.log main;
error_log /opt/log/nginx/example.58.com/example.58.com_https_error.log error;
charset utf-8; ssl on;
ssl_certificate ../ssl/58_com-key/server.pem;
ssl_certificate_key ../ssl/58_com-key/server.key;
ssl_session_timeout 10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
ssl_prefer_server_ciphers on; #### by dongange ####
set $remote_address $http_x_forwarded_for; if ( $remote_address !~ "[0-9]" ) {
set $remote_address $remote_addr;
}
#### ----------- #### location / {
proxy_pass http://example_pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_address;
proxy_set_header HTTPS-Tag "HTTPS";
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 = https://404.58.com/404.html?from=$host$request_uri;
}

nginx https 配置样例的更多相关文章

  1. 第十三篇Django Logging配置样例

    第十三篇Django Logging配置样例 阅读目录(Content) Django 日志配置模板 官方链接 Django Logging Django 日志配置模板 LOGGING = { 've ...

  2. [转]3proxy 二级代理配置样例

    转自:http://www.cnblogs.com/airsong23/p/3893094.html 适应情况: 有时,我们的机器HOST-A只能通过代理服务器HOST-B才可以访问internet, ...

  3. 3proxy 二级代理配置样例

    适应情况: 有时,我们的机器HOST-A只能通过代理服务器HOST-B才可以访问internet, 而与我们相连的机器HOST-C也需要访问internet, 但是HOST-C却不能直接访问HOST- ...

  4. Nginx完整配置配置样例【官方版】

    我们主要参考nginx官方给出的完整配置的样例: https://www.nginx.com/resources/wiki/start/topics/examples/full/# 完整摘录如下: n ...

  5. nginx https配置后无法访问,可能防火墙在捣鬼

    同事发现nginx配置后https 无法访问,我帮忙解决的时候从以下出发点 1.防火墙未开放443端口 2.配置出错 1 2 3 于是就 netstat -anp 查看防火墙开的端口 发现已经在监听了 ...

  6. Nginx Https配置不带www跳转www

    把 morethink.cn和www.morethink.cn合并到一个server上去,使用301永久重定向. 然后将 https://morethink.cn 转到 https://www.mor ...

  7. Ubuntu Nginx https 配置

    #配置http跳转到https 80跳转443server { listen ; server_name www.***.com www.***.cn; https://$server_name$re ...

  8. ingress nginx https配置

    3.https配置第一步:制作自签证书 [root@master demo]# openssl genrsa -out tls.key 2048 [root@master demo]# openssl ...

  9. nginx配置样例

    简单的nginx配置如下,包含了静态文件配置.websocket.socket.io的配置: user nobody; worker_processes 3; #master_process off; ...

随机推荐

  1. Js引擎解析执行 阅读笔记

    Js引擎解析执行 阅读笔记 一篇阅读笔记 http://km.oa.com/group/2178/articles/show/145691?kmref=search&from_page=1&a ...

  2. [ZJOI2012]数列

    超级水的题还wa了一次 首先很容易发现其实就只有两个值并存 然后 要注意把数组初始化啊...可能后面有多余的元素(对拍的时候由于从小到大就没跑出错) #include <bits/stdc++. ...

  3. Codeforces 1041F Ray in the tube (看题解)

    Ray in the tube 感觉是套路题.. 如果确定一个差值x我们如何取确定答案呢, 我们把a[ i ] -> a[ i ] % (2 * x), 把b[ i ] -> (b[ i ...

  4. BZOJ1260 [CQOI2007]涂色paint 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1260 题意概括 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂 ...

  5. VMware 获取该虚拟机的所有权失败

    1. 虚拟机打开失败 VMware Workstation报错(打开虚拟机时出错:获取该虚拟机的所有权失败.主机上的某个应用程序正在使用该虚拟机.配置文件:D:\Ubuntu 16.04\Ubuntu ...

  6. POJ1006 Biorhythms【中国剩余定理】

    <题目链接> 题目大意: 人体的体力每23天会达到峰值,情感每28天会达到峰值,智力每33天会达到峰值,一个人在a天体力达到峰值,b天情感达到峰值,c天智力达到峰值,求这个人下一次体力情感 ...

  7. Autodesk系列软件下载

    摘要: 写在前面:下载后如有需要压缩密码的请先使用压缩软件(如:2345好压)打开压缩包,在压缩包的注释或者文本信息中会给出压缩密码!如若没有请私信! 1.3ds Max软件(64位) Autodes ...

  8. 【值得收藏】一份非常完整的Mysql规范

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 本文从芋道源码转载,在原有内容基础上结合阿里巴巴Java开发手册中Mysql数据库章节的介绍,加上自己的理解和说明,整理而 ...

  9. VB.NET只允许打开一个实例

    If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) ...

  10. Nutch源码阅读进程4

    前面依次看了nutch的准备工作inject和generate部分,抓取的fetch部分的代码,趁热打铁,我们下面来一睹parse即页面解析部分的代码,这块代码主要是集中在ParseSegment类里 ...