Linux下为Nginx添加Https支持

2018-07-02 16:26:52 7119

我们在Linux中,按照一键包等集成环境配置的lnmp环境后,由于一键包的不同,导致我们对Nginx的Https支持无法有着相同的配置方法,所以我们只需要修改Nginx默认文件来支持Https即可。

Nginx常规默认路径如下:

/etc/nginx/conf/vhost/xxx.conf

(其中xxx为您需要上Https的站点)。

打开它,里面类似于这样的文件:

server {
  listen 80;
   server_name localhost;
 
  access_log /var/log/www.landui.com main;
  root /var/www/html;
  index index.php index.html index.htm;
 location ~ .*\.php(\/.*)*$ {
  fastcgi_split_path_info ^(.+?\.php)(/.*)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_param PATH_INFO $fastcgi_path_info; 
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
 }
 }

我们只需要在 listen 80; 下面增加一下几行:

ssl_certificate /var/www/html/key.crt; #这是证书
ssl_certificate_key /var/www/html/key.key; #私钥

这样,我们就对Nginx开启了Https支持,这样我们的站点http和https可以同时访问,如果需要强制浏览器访问Https的话,我们需要在后面加入强制规则:

 listen 443 ssl; #监听443端口,https专用
 if ($server_port !~ 443){
 rewrite ^/.*$ http://$host$uri; #如果端口不是443,自动转到443端口
 }

加入规则后,浏览器访问80端口时会自动跳转到443端口,来达到http转向https的操作。

值得我们注意的是,两个SSL后面的证书路径需要设置存在的目录以及证书文件。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: