程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP基礎知識 >> nginx設置SSL反向代理

nginx設置SSL反向代理

編輯:PHP基礎知識
 

Nginx的反向代理通常用來映射內網中提供的Apache、IIS、Lighttpd服務,以實現負載均衡;同時,由於動態服務程序運行在內網,服務器的整體安全性也有所提高,那麼怎樣用nginx設置SSL反向代理呢?

 

使用nginx設置SSL的優點不少:

  1. 易用性:nginx安裝、升級簡單,nginx的平滑升級使得網站服務器不需要重啟就可以完成升級任務。
  2. 安全性:nginx對於代理是透明的,因此,相當於為放置在代理後的Apache等服務器提供一道安全屏障、可以抵御一些基本web的攻擊。
  3. 低負載:負載低是nginx的另一大優點。可以在nginx代理後配置多個apache服務器以滿足不同需求
  4. 緩存:可以將除動態文件以外的文件,如css、js、靜態html頁直接交給nginx處理,以進一步降低負載
  5. 文件壓縮: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

openssl-private-key.png

生成CSR(Certificate Signing Request)文件:

# openssl req -new -key nixcraft.in.key -out nixcraft.in.csr

openssl-create-csr.png

請輸入自己的證書域名。上圖紅框的部分

二、配置SSL反向代理

編輯nginx的配置文件

#vi /usr/local/ngnix/conf/nginx.conf

添加如下代碼:

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訪問你的網站了。
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved