Nginx环境下http和https(ssl)共存的方法

为服务器的Nginx配置SSL证书之后,https的网站可以正常访问,http访问显示400错误,通过301转向到https以后,能够实现部分功能,但是有一些程序不支持。

那么就需要http和https共存的状况。 下面介绍一下具体配置:

原Nginx的配置如下:

server {
            listen 80 default;
            listen 443;
            server_name my.taohost.com;
            root /var/www/html;

            ssl on;
            ssl_certificate /usr/local/taohost/sslcrt/mytao.com.crt;
            ssl_certificate_key /usr/local/taohost/sslcrt/mytao.com.key;
        }

这种情况下访问HTTP的时候会报400错误。http的端口被302到https上了。

修正如下:

server {
            listen 80 default;
            listen 443 ssl;
            server_name my.taohost.com;
            root /var/www/html;

            ssl_certificate /usr/local/taohost/sslcrt/mytao.com.crt;
            ssl_certificate_key /usr/local/taohost/sslcrt/mytao.com.key;
        }

注意:

这里把 ssl on; 去掉了。ssl写在443端口后面。这样http和https的链接都可以用,完美解决。

顺带把301转向的方法也写在这里:

在服务器的Nginx配置文件里,加上如下一段: 这样就可以把http的链接都转化为https的链接。

server {
        listen  80;
        server_name my.taohost.com;
        return 301 https://my.taohost.com$request_uri;
}
  • 112 用户发现这个很有用
此答案是否对您有帮助?

相关文章

nginx同一iP多域名配置方法

nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里。...

nginx配置404重定向(同路径变迁)

当网站更换了域名,导致很多页面无法访问的时候,需要用到重新定向的功能。 那么如何做到不丢失原有客户呢?...

Ubuntu 18.04添加和修改IP地址方法

注:配置/etc/network/interfaces已无用 root@ubuntu:~# vim /etc/netplan/50-cloud-init.yaml network:...