课程表

Nginx 基础

Nginx 核心模块

Nginx 基本模块

Nginx 其他模块

工具箱
速查手册

Nginx 配置SSL及跳转

当前位置:免费教程 » 数据库/运维 » Nginx

随着微信小程序和appstore对ssl安全的需求,越来越多的网站和app需要支持SSL功能,需要开启https的方式来打开网站或传输数据。

ssl证书网上可以找到收费和免费的申请,nginx配置如下:

Nginx配置SSL并把Http跳转到Https,需要修改Nginx.conf配置文件:

  1. #原80端口做301转跳
  2. server {
  3. listen 80;
  4. server_name w3cschool.cn www.w3cschool.cn;
  5. return 301 https://www.zhimiyun.com$request_uri; #跳转到Https
  6. }#配置ssl证书和开启ssl功能
  7. server {
  8. listen 443;
  9. server_name www.w3cschool.cn;
  10. root wwwroot;
  11. index index.html index.htm;
  12.  
  13. ssl on;
  14. ssl_certificate /usr/ssl/ca.pem; #证书地址
  15. ssl_certificate_key /usr/ssl/ca.key;
  16.  
  17. ssl_session_timeout 5m;
  18.  
  19. ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  20. ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  21. ssl_prefer_server_ciphers on;
  22. error_page 497 "https://$host$uri?$args"; #这是跳转Http请求到Https
  23.  
  24. location / {
  25. ...
  26. }
  27. }

也就是再添加一个虚拟机server,80端口一个,443端口一个。

但是有些程序只会给你往端口上转发,不会自动修正http为https,这样的程序还不少,例如phpmyadmin:

遇到这样的程序我们需要修改Nginx.conf配置文件,在443的server的fastcgi字段中添加一个语句:

  1. fastcgi_param HTTPS on; #attention!#

例如:

  1. location ~ .*\.(php|php5)?$
  2. {
  3. try_files $uri =404;
  4. fastcgi_pass unix:/tmp/php-cgi.sock;
  5. fastcgi_index index.php;
  6. fastcgi_param HTTPS on; #attention!#
  7. include fcgi.conf;
  8. }

注释:

把http重定向到https使用了nginx的重定向命令。那么应该如何写重定向?之前老版本的nginx可能使用了以下类似的格式。

  1. rewrite ^/(.*)$ http://domain.com/$1 permanent;

或者

  1. rewrite ^ http://domain.com$request_uri? permanent;

现在nginx新版本已经换了种写法,上面这些已经不再推荐。现在网上可能还有很多文章写的是第一种。

新的写法比较推荐方式是:

  1. return 301 http://domain.com$request_uri;
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号