Nginx实现https-文件下载服务器

时间:2024-04-09 18:46:30
  • 一、 功能描述

1、 Nginx作为web中间件,可以为我们提供文件下载功能,实现访问强制下载文件。
2、 为nginx实现https,需要我们修改nginx端口,并利用openssl自签证书即可。
3、 准备:nginx服务器一台、域名一个。

  • 二、 实施步骤

1、 实现文件下载功能
Nginx支持文件下载功能,可作为文件下载服务器。只需在server下,定义好根目录,并将文件放在其目录下即可。
Nginx实现https-文件下载服务器
访问时,需要在地址后添加文件名称,例如:http://www.xxxx.com/xxx.txt
2、 实现https传输
实现https传输,可以向证书服务商申请证书,还有一种就自签证书,自签证书数据不可信任的,浏览器会报出不可信任证书的警报,只需忽略即可。以下为实施步骤:
1、 使用openssl来自签证书,确保服务器上安装了openssl
#yum install openssl
#yum install openssl-devel
2、 之后开始自签证书:
#cd /usr/local/nginx/conf #进入想要存放钥匙、请求、证书的目录
#openssl genrsa -des3 -out server.key 2048 #生成私钥,并定义密码
#openssl req -new -key server.key -out server.csr #生成请求
#openssl rsa -in server.key -out server.key #生成私钥(去密码)(可跳过),
#openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt #生成证书
以下为:我找到的一个比较详细的证书自签步骤
Nginx实现https-文件下载服务器

3、在自签证书时,在生成请求以及证书时,会提示输入地址、公司名称、部门名称等,再看下一幅图。
Nginx实现https-文件下载服务器
依次输入:国家名称、省名称、市名称、公司名称、部门名称、域名、邮箱地址,之后的直接回车即可
4、配置nginx
Nginx实现https-文件下载服务器
在nginx配置文件中,增加以上行,让nginx支持ssl功能,之后重启即可。
Ps:如果出现“[emerg] 10464#0: unknown directive “ssl” in /usr/local/nginx-0.6.32/conf/nginx.conf:74”则说明没有将ssl模块编译进nginx,在configure的时候加上“–with-http_ssl_module”即可。(o)/

4、 经过以上步骤,nginx的https功能即可实现,但是如果作为文件下载服务器的话,在360浏览器或IE浏览器会出现不兼容的问题,只需在nginx的配置文件nginx.conf中加入add_header Content-Disposition “attachment” ;这行参数即可。

Nginx实现https-文件下载服务器