nginx 支持 https 访问的配置——完整配置文件

Posted alanabc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 支持 https 访问的配置——完整配置文件相关的知识,希望对你有一定的参考价值。

关于https的介绍网上很多了,就不啰嗦了。

配置支持https的访问需要nginx安装了ssl模块。其次是要准备ssl证书,nginx版的证书包含了crt文件和key文件,这个ssl证书一般是从认证服务提供商那里申请。假定nginx服务已经准备妥当,现在需要增加https访问的支持,只需要修改一下nginx的虚拟主机配置文件就可以了。

先看完整的配置文件内容吧,重要的几个地方有写注释。

# your.domain.name.conf

# 这一块是监听 80 端口的访问请求,也就是http的访问
# 可以根据需要来决定要不要监听 80 端口,不需要的话可以直接删除这块
server {
    listen        80;
    listen        [::]:80;
    server_name   your.domain.name;
    root          /your/web/root/path;
    
    # 把 http 访问重定向到 https
    rewrite ^(.*)$        https://$host$1 permanent;
}
###

server {
    # 监听来自 443 端口的访问请求,也就是https的访问
    listen       443;
    listen       [::]:443;
    server_name  your.domain.name;
    root         /your/web/root/path;
    ###

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }

    access_log   /your/web/log/path/your_domain_name.access.log main;
    error_log    /your/web/log/path/your_domain_name.error.log info;

    # 启用 ssl 支持,然后载入 crt 和 key 文件
    ssl on;
    ssl_certificate /your/cert/file/path/your_domain_name/1_your.domain.name_bundle.crt;
    ssl_certificate_key /your/cert/file/path/your_domain_name/2_your.domain.name.key;
    ###

    include /etc/nginx/default.d/*.conf;

    location / {
        index index.php index.html;
    }

    location ~ .*.php(/.*)*$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    error_page 404 /404.html;
    location = /40x.html {

    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    
    }
}

修改完成后记得重启一下nginx服务。

以上是nginx的虚拟主机配置文件,具体存放位置会有些不一样,我的是CentOS服务器,nginx配置文件存放在 /etc/nginx/conf.d/ 目录下(有些主机商提供部署好的web环境,路径也可能不一样)。

关于里面的配置内容,不必全盘搬照(你能看得出来,我这里服务器端用的是PHP语言),只要注意有注释的地方就可以了。

以上是关于nginx 支持 https 访问的配置——完整配置文件的主要内容,如果未能解决你的问题,请参考以下文章

nginx配置支持https访问

nginx配置支持https访问

nginx配置支持https访问

Centos7.5 下Nginx配置SSL支持https访问。

Linux Nginx 配置 SSL 证书支持 HTTPS 访问(参考)

Linux Nginx 配置 SSL 证书支持 HTTPS 访问(参考)