服务器部署网站后,公网ip能够访问,域名不能访问问题(稳)

 

出现问题

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

解决

  • 去腾讯云申请一个免费的一年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转为httpshtml

    return 301 https://$server_name$request_uri;

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

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

解决得了记得点个赞哦nginx

相关文章
相关标签/搜索