nginx proxy https

server {
listen 443;
server_name mail.jb51.net;

ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;

location / {
proxy_pass https://192.168.0.2:443;

proxy_set_header Host $host:443;
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";

}
}

其中192.168.0.2是你的https主机
如果后端https没有证书的话,可以如此简化:

复制代码
代码如下:

server {
listen 80;
server_name
svn.jb51.net;

location / {
proxy_pass https://192.168.0.2:443;

proxy_set_header Host $host:443;
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";

proxy_set_header X-Forwarded-Proto https; #注意看这里 多了一行
}
}

如果提示“SSL 接收到一个超出最大准许长度的记录。” 错误代码“ssl_error_rx_record_too_long”说明少了“ssl
on;”这一行

Nginx 反向代理https

说明:

1.nginx 1.2.0 centos 6.2
2.这里所指的反向代理https是指nginx为ssl服务器,nginx与后端服务器的通信还是http,当然可能也可以实现nginx与后端服务器实现https通信,不过本文没有测试

步骤:
nginx要实现ssl,在编译时要添加--with-http_ssl_module,如:
./configure --with-http_ssl_module

#cd /usr/local/nginx/conf
#mkdir ssl
#cd ssl
生成一个私有key
# openssl genrsa -des3 -out aoshiwei.com.key 1024
提示输入密码
生成CSR(Certificate Signing Request)文件:
# openssl req -new -key aoshiwei.com.key -out aoshiwei.com.csr
填写证书内容,组织机构、域名等,Common Name填写域名
 
# cp aoshiwei.com.key aoshiwei.com.key.bak
# openssl rsa -in aoshiwei.com.key.bak -out aoshiwei.com.key
# openssl x509 -req -days 365 -in aoshiwei.com.csr -signkey aoshiwei.com.key -out aoshiwei.com.crt

在nginx.conf中添加:

[plain] view plaincopy

  1. server {
  2. ### server port and name ###
  3. listen          443 ssl;
  4. server_name     member.aoshiwei.com;
  5. ssl on;
  6. ### SSL log files ###
  7. access_log      logs/ssl-access.log;
  8. error_log       logs/ssl-error.log;
  9. ### SSL cert files ###
  10. ssl_certificate      ssl/aoshiwei.com.crt;
  11. ssl_certificate_key  ssl/aoshiwei.com.key;
  12. ### Add SSL specific settings here ###
  13. keepalive_timeout    60;
  14. ###  Limiting Ciphers ########################
  15. # Uncomment as per your setup
  16. #ssl_ciphers HIGH:!ADH;
  17. #ssl_perfer_server_ciphers on;
  18. #ssl_protocols SSLv3;
  19. ##############################################
  20. ### We want full access to SSL via backend ###
  21. location / {
  22. proxy_pass  http://member.aoshiwei.com;
  23. ### force timeouts if one of backend is died ##
  24. proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
  25. ### Set headers ####
  26. proxy_set_header Host $host;
  27. proxy_set_header X-Real-IP $remote_addr;
  28. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  29. ### Most PHP, Python, Rails, Java App can use this header ###
  30. proxy_set_header X-Forwarded-Proto https;
  31. ### By default we don‘t want to redirect it ####
  32. proxy_redirect     off;
  33. }
  34. }
时间: 2024-10-12 06:17:35

nginx proxy https的相关文章

Nginx Proxy timeout排错

一.环境 当前的环境为nginx作为前端反向代理,upstream为两台tomcat. 二.原因 由于最近项目属于初期阶段,平日加班也比较多,刚好碰到一天没有什么问题的时间,我早早的收拾装备开心的坐上了地铁奔向家里. 此时,听着音乐的我快乐的坐在地铁上,突然音乐戛然而止,响起了来电的铃音.一种不好的预感油然而生,看来是有问题了.于是乎我拿出电话看到了我们老大的名字闪现在手机屏幕上,深呼一口气,接起电话.就听见我们老大说现在客户端那边报错等什么什么的.由于地铁里杂音很大,信号又不是太好,就没细问.

Centos7 nginx 搭建https服务器

Nginx简介 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx 1.0.4发布. Nginx是一款轻量级的Web 服务器/反向代理服务器及电

终于成功配置 nginx + proxy

今天晚上折腾两个小时,终于成功配置 nginx + proxy 支持以下访问地址,使用的是同一个Flask APP. https://search.readmorejoy.com/ https://markdown.readmorejoy.com/ 初次的学习总是比较折磨人. 单独出 markdown,是因为还要出一个 PC版本 原文地址:https://www.cnblogs.com/pycoding/p/11360979.html

nginx Proxy 配置

1.代理模块 ngx_http_proxy_module 2.代理配置 代理Syntax: proxy_pass URL; #代理的后端服务器URLDefault: —Context: location, if in location, limit_except 头信息Syntax: proxy_set_header field value;Default: proxy_set_header Host $proxy_host; #设置真实客户端地址 proxy_set_header Connec

线上nginx proxy buffer导致的性能问题

最近有一个项目访问量突然变大,但发现前端的nginx负载会很高,导致出现4xx和5xx的异常,响应时间也变长了.今天有时间,解决了一下.下面记录一下解决思路和方法.我们这个项目部署在azure.最前端是azure 的负载均衡器(lb),lb后面是2台nginx主机,型号是D2v3(2核8G).在我们实际使用中,一台nginx主机rpm达到30k,cpu,内存,网络都是没有任何压力的.所以一台主机支持的最大访问量应该远远大于30k.但今天这个项目rpm撑到3k的时候,系统负载就很高了.这个项目后端

使用自签的证书配置nginx的https

1.生成根证书密钥 #] openssl genrsa -des3 -out ca.key 2048 2.自签证书 #] openssl req -new -x509 -days 7305 -key ca.key -out ca.crt 参数说明: req: 生成证书签署请求 -news: 新请求 -key /path/to/keyfile: 指定私钥文件 -out /path/to/somefile: -x509: 生成自签署证书 -days n: 有效天数 3.准备必要文件: #] touc

nginx配置HTTPS

使用ssl模块配置同时支持http和https并存 一,生成证书 # 1.首先,进入你想创建证书和私钥的目录,例如: cd /etc/nginx/ # 2.创建服务器私钥,命令会让你输入一个口令: openssl genrsa -des3 -out server.key 1024 # 3.创建签名请求的证书(CSR): openssl req -new -key server.key -out server.csr # 4.在加载SSL支持的Nginx并使用上述私钥时除去必须的口令: cp se

nginx proxy X-Forwarded-For

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 在nginx配置中,严谨一点来说这配置使用在作为代理的nginx中. 通过名字就知道,X-Forwarded-For 是一个扩展头.HTTP/1.1(RFC 2616)协议并没有对它的定义,它最开始是由 Squid 这个缓存代理软件引入,用来表示 HTTP 请求端真实 IP,现在已经成为事实上的标准,被各大 HTTP 代理.负载均衡等转发服务广泛使用,并被写入 RFC 723

nginx搭建https单向证书

一)默认情况下ssl模块并未被安装,如果使用该模块则需要在编译nginx的时指定--with-http_ssl_module参数. wget http://nginx.org/download/nginx-1.3.16.tar.gz tar -xf nginx-1.3.16.tar.gz -C /usr/local/ cd /usr/local/nginx-1.3.16/ ./configure --prefix=/usr/local/nginx --user=nginx --group=ngi