nginx设置SSL反向代理
2013-03-12 15:51
330 查看
Nginx的反向代理通常用来映射内网中提供的Apache、IIS、Lighttpd服务,以实现负载均衡;同时,由于动态服务程序运行在内网,服务器的整体安全性也有所提高,那么怎样用nginx设置SSL的反向代理呢?
使用nginx设置SSL的优点不少:
易用性:nginx安装、升级简单,nginx的平滑升级使得网站服务器不需要重启就可以完成升级任务。
安全性:nginx对于代理是透明的,因此,相当于为放置在代理后的Apache等服务器提供一道安全屏障、可以抵御一些基本web的攻击。
低负载:负载低是nginx的另一大优点。可以在nginx代理后配置多个apache服务器以满足不同需求
缓存:可以将除动态文件以外的文件,如css、js、静态html页直接交给nginx处理,以进一步降低负载
文件压缩:nginx可以优化并减小文件传输尺寸,缩短文件读取时间。
说了一大堆优点,相信诸位看官该跃跃欲试了吧,闲话少提^_^,下面给出配置实例:
由于,下面的代码只是用来演示整个配置过程,因此,我使用的SSL安全证书是自己签名的,如果需要能够通过验证的SSL安全证书,请到CAs自我了断^_^(网站地址:www.verisign.com)。
一、生成SSL安全证书
在nginx的配置目录下新建一个文件夹用以存放证书
# cd /usr/local/nginx/conf
# mkdir ssl
# cd ssl
生成一个私有key
# openssl genrsa -des3 -out nixcraft.in.key 1024
生成CSR(Certificate Signing Request)文件:
# openssl req -new -key nixcraft.in.key -out nixcraft.in.csr
请输入自己的证书域名。上图红框的部分
二、配置SSL反向代理
编辑nginx的配置文件
#vi /usr/local/ngnix/conf/nginx.conf
添加如下代码:
?
保存、并重新加载配置文件
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
查看是否配置成功:
# netstat -tulpn | grep :443
SSL配置大功告成了,你可以使用https://youdomain.com访问你的网站了。
使用nginx设置SSL的优点不少:
易用性:nginx安装、升级简单,nginx的平滑升级使得网站服务器不需要重启就可以完成升级任务。
安全性:nginx对于代理是透明的,因此,相当于为放置在代理后的Apache等服务器提供一道安全屏障、可以抵御一些基本web的攻击。
低负载:负载低是nginx的另一大优点。可以在nginx代理后配置多个apache服务器以满足不同需求
缓存:可以将除动态文件以外的文件,如css、js、静态html页直接交给nginx处理,以进一步降低负载
文件压缩:nginx可以优化并减小文件传输尺寸,缩短文件读取时间。
说了一大堆优点,相信诸位看官该跃跃欲试了吧,闲话少提^_^,下面给出配置实例:
由于,下面的代码只是用来演示整个配置过程,因此,我使用的SSL安全证书是自己签名的,如果需要能够通过验证的SSL安全证书,请到CAs自我了断^_^(网站地址:www.verisign.com)。
一、生成SSL安全证书
在nginx的配置目录下新建一个文件夹用以存放证书
# cd /usr/local/nginx/conf
# mkdir ssl
# cd ssl
生成一个私有key
# openssl genrsa -des3 -out nixcraft.in.key 1024
生成CSR(Certificate Signing Request)文件:
# openssl req -new -key nixcraft.in.key -out nixcraft.in.csr
请输入自己的证书域名。上图红框的部分
二、配置SSL反向代理
编辑nginx的配置文件
#vi /usr/local/ngnix/conf/nginx.conf
添加如下代码:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | server { ### server port and name ### listen 443 ssl; server_name nixcraft.in; ### SSL log files ### access_log logs/ssl-access.log; error_log logs/ssl-error.log; ### SSL cert files ### ssl_certificate ssl/nixcraft.in.crt; ssl_certificate_key ssl/nixcraft.in.key; ### Add SSL specific settings here ### keepalive_timeout 60; ### Limiting Ciphers ######################## # Uncomment as per your setup #ssl_ciphers HIGH:!ADH; #ssl_perfer_server_ciphers on; #ssl_protocols SSLv3; ############################################## ### We want full access to SSL via backend ### location / { proxy_pass http://nixcraft; ### force timeouts if one of backend is died ## proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; ### Set headers #### proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ### Most PHP, Python, Rails, Java App can use this header ### proxy_set_header X-Forwarded-Proto https; ### By default we don't want to redirect it #### proxy_redirect off; } |
# /usr/local/nginx/sbin/nginx -t
# /usr/local/nginx/sbin/nginx -s reload
查看是否配置成功:
# netstat -tulpn | grep :443
SSL配置大功告成了,你可以使用https://youdomain.com访问你的网站了。
相关文章推荐
- nginx设置SSL反向代理
- Nginx配置文件的常用设置(附详细说明及Nginx的proxy负载均衡、memcached负载均衡、反向代理)
- Nginx 教程(3):SSL 设置
- Nginx作为反向代理时传递客户端IP的设置方法
- Nginx :SSL 设置
- apache nginx ssl 设置说明
- nginx设置SSL反向代理
- Docker Registry+ssl 用Nginx做反向代理并且用ldap做验证
- nginx设置SSL反向代理
- nginx设置Tomcat反向代理,并静态资源分离
- Nginx反向代理转发Host设置
- Resin多端口设置以及Nginx反向代理设置(转)
- Nginx作为反向代理时传递客户端IP的设置方法
- nginx在多台服务器设置SSL安装过程,包括路由,暂时没有翻译哈,大家直接看着色的部分就好了
- Nginx 部分 (四) -SSL设置及性能优化
- Linux命令:nginx启用SSL功能设置及虚拟主机
- Nginx的安装及反向代理设置
- Resin多端口设置以及Nginx反向代理设置(转)
- Nginx SSL/HTTPS 设置方法
- 【Nginx】使用Nginx做反向代理时,关于被代理服务器相应的超时设置