zoukankan      html  css  js  c++  java
  • 服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)

    出现问题

        这几天我网站已经部署到vps上,域名也备好案,想使用域名指向我们公网ip。指完发现用域名访问不了网站,但是公网ip可以。于是看了网上资料,好像是要清除浏览器DNS缓存,我清完没用。然后发现我的域名是https的,查了查,好像是没有在服务器上安装SSL证书,导致我用域名访问不了。最后真是这个原因

    解决

    • 去腾讯云申请一个免费的一年SSL证书,但是每隔一年都得重新免费申请。点击这里跳转到腾讯云SSL证书
      在这里插入图片描述
    • 之后的照着填就是了。。然后应该会等待一两天(他们是打电话给我)就申请好。
    • 申请好之后就这样,点击下载。
      在这里插入图片描述
    • 下载完解压,出现下面的文件
      在这里插入图片描述
    • 选择一个你在服务器上用的,我的是Nginx。
    • 下面需要使用工具Putty连接服务器和WinSCP远程传输文件来解决。其实单独用WinSCP来解决也可以。
    • 先使用WinSCP把刚刚解压的Nginx文件中的两个1_flunggg.cn_bundle.crt和2_flunggg.cn.key文件传输到你在服务器的nginx的conf目录下。我自己是安装在/etc/nginx下(在CentOS7安装Nginx),但是没有conf目录,所以我自己新创建conf目录,如下指令。把两个文件从本地用WinSCP拉过去。然后在此目录新创建一个文件
    mkdir /etc/nginx/conf
    vi myblog.conf
    • 在 myblog.conf中加上(由于版本问题,配置文件可能存在不同的写法。例如:使用 listen 443 ssl 代替 listen 443 和 ssl on。),记得把下面的ssl_certificate和ssl_certificate_key改成刚刚拉进来的两个文件名(因为原先默认会自动定位到/etc/nginx/, 所以nginx -t时错误找不到两个文件,所以的配置 /conf/xxx,这个看个人nginx版本情况),还有server_name。此外可以跟原先站点配置的文件.conf一起共存,那个80端口,这是新创建的443端口,配置SSL的,但是两者共存时,80端口的站点需要强制跳转为htpps的站点(443端口的),待会会讲。
    server {
         #SSL 访问端口号为 443
         listen 443 ssl; 
         #填写绑定证书的域名
         server_name www.flunggg.cn flunggg.cn; 
         #证书文件名称
         ssl_certificate conf/1_flunggg.cn_bundle.crt; 
         #私钥文件名称
         ssl_certificate_key conf/2_flunggg.cn.key; 
         ssl_session_timeout 5m;
         #请按照以下协议配置
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
         #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
         ssl_prefer_server_ciphers on;
         location / {
            #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
             root /usr/share/nginx/html; 
             index  index.html index.htm;
         }
     }
    • 然后在主配置中(nginx.conf)的http下添加如下代码,然后测试一下,成功了就使用重启nginx
    # 使得刚刚配置的SSL生效
    include /etc/nginx/conf/*.conf;
    #测试
    nginx -t
    # 重启
    nginx -s reload
    • 这时再访问域名就可以访问了。上面只是我的配置,你也可以把SSL配置跟你站点的配置放在一个文件。

    如果80端口和443端口两个配置文件同时生效的问题

    有可能在访问80端口,也就是http时有时会有点错误,所以在80端口的配置文件的server中,加上一句:当访问把http转为https

        return 301 https://$server_name$request_uri;

    配完还是有可能出现的问题

    • 也就是将配置文件的root指向我们的站点目录后。我们尝试用域名访问,发现出现下面问题。
      在这里插入图片描述
    • 这是权限文件,无权访问你的站点。我检查了我的站点目录权限,都是git:git,正常。,最后发现是在nginx目录下的全局配置文件nginx.conf中。
      在这里插入图片描述
    • user配的是nginx,导致没有权限,修改成root。
      在这里插入图片描述
    • 在重启 nginx(nginx -s reload)就可以访问了。

    解决得了记得点个赞哦

  • 相关阅读:
    研究称90%的癌症由非健康生活习惯导致
    章苏阳:早期投资,第一是看人,第二也是看人,第三还是看人!
    文章翻译第七章7-9
    文章翻译第七章4-6
    文章翻译第六章1-3
    翻译文章第六章8-11
    文章翻译第七章10-12
    VR虚拟现实技术在教育领域的前景展望
    围棋比赛不算什么,更牛的是机器人能预测未来
    c语言简单实现word count功能
  • 原文地址:https://www.cnblogs.com/flunggg/p/12184643.html
Copyright © 2011-2022 走看看