欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-15 16:04:42
...

出现问题

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

解决

  • 去腾讯云申请一个免费的一年SSL证书,但是每隔一年都得重新免费申请。点击这里跳转到腾讯云SSL证书
    服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)
  • 之后的照着填就是了。。然后应该会等待一两天(他们是打电话给我)就申请好。
  • 申请好之后就这样,点击下载。
    服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)
  • 下载完解压,出现下面的文件
    服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)
  • 选择一个你在服务器上用的,我的是Nginx。
  • 下面需要使用工具Putty连接服务器和WinSCP远程传输文件来解决。其实单独用WinSCP来解决也可以。
  • 先使用WinSCP把刚刚解压的Nginx文件中的两个1_flunggg.cn_bundle.crt2_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_certificatessl_certificate_key改成刚刚拉进来的两个文件名(因为原先默认会自动定位到/etc/nginx/, 所以nginx -t时错误找不到两个文件,所以的配置 /conf/xxx,这个看个人nginx版本情况),还有server_name此外不要跟原先站点配置的文件.conf,那个80端口的混了,这是新创建的,配置SSL的,跟原来配置站点那个不同,不要覆盖了。
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配置跟你站点的配置放在一个文件。

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

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

解决得了记得点个赞哦