美文网首页
域名绑定IP及采用https方式访问教程

域名绑定IP及采用https方式访问教程

作者: sidyph | 来源:发表于2018-10-08 19:00 被阅读0次

    现有一已经备案的域名,和在家庭电脑上的flask服务的网页,希望做到通过域名及https的方式访问该网页。
    准备通过nginx在云服务器上进行转发,用frp做内网穿透,访问本地网页。
    流程如下:

    1.买一个云服务器,例如阿里云。

    这个云服务器需要有公网IP(即固定不变的IP,才能和域名绑定)。

    2.将域名解析到该公网IP。

    image.png
    image.png

    3.进入云服务器,这里采用centos7系统。安装tengine(即nginx的一个分支,具有nginx的功能)。

    mkdir /usr/local/tengine:创建tengine文件夹
    cd方法进入该文件夹
    wget http://tengine.taobao.org/download/tengine-2.2.2.tar.gz:下载tengine
    tar zxvf tengine-2.2.2.tar.gz:解压tengine-2.2.2.tar.gz到tengine文件夹下
    cd tengine-2.2.2
    yum install gcc openssl-devel zlib-devel -y:安装依赖文件
    ./configure --with-http_stub_status_module --with-http_ssl_module:编译
    make && make install:安装(安装时会自动创建/usr/local/nginx文件夹)
    cd nginx/sbin:进入sbin文件夹
    ./nginx:启动nginx
    ./nginx -t :测试nginx是否启
    lsof -i:80 :查看80端口是否开启(yum install lsof安装lsof),下图表示正常监听

    image.png
    /usr/local/nginx/conf/nginx.conf或者 进入conf文件夹后sudo vi nginx.conf 打开配置文件
    浏览器打开www.wingsfish.com出现tengine欢迎界面表示安装成功
    在/usr/local/nginx目录中创建ssl文件夹。
    注意:vultr(一种VPS代理,如果不用可忽视)有防火墙问题,需要将80端口添加让防火墙通过,否则不能访问。
    防火墙部分可以参考:https://www.jianshu.com/p/6ac0a9afa080
    image.png

    4.获取ssl证书,方便用https访问

    获取ssl证书有很多渠道,下面介绍两种:

    1)Let’s Encrypt

    curl https://get.acme.sh | sh:下载安装acme.sh
    安装后进入/root/.acme.sh目录
    ./acme.sh --issue -d www.wingsfish.com --webroot /usr/local/nginx/html:生成证书(正常会有证书生成验证成功提示,证书生成在/root/.acme.sh/www.wingsfish.com目录)
    进入/root/.acme.sh目录
    ./acme.sh --installcert -d www.wingsfish.com
    --key-file /usr/local/nginx/ssl/www.wingsfish.com.key
    --fullchain-file /usr/local/nginx/ssl/fullchain.cer
    --reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
    进入/usr/local/nginx/conf/目录,编辑nginx.conf文件:

    image.png
    将https sever下边的配置注释解开(删除前面的#号), ssl_certificate 这里配置fullchain.cer , ssl_certificate_key这里配置www.wingsfish.com.key,这俩文件都经过上边的命令被放在/usr/local/nginx/ssl目录中,保存文件退出后,执行命令
    ( /usr/local/nginx/sbin/nginx -t),
    image.png
    ,有这个显示说明配置成功,再执行命令(/usr/local/nginx/sbin/nginx -s reload)重新加载nginx配置文件后,在浏览器中输入https://www.wingsfish.com,如果出现欢迎界面表示配置成功,
    image.png
    加上此配置可配置强制使用https
    注:如果不用https,则做如下修改进行转发:
    image.png
    增加这一行即可。
    增加完重新加载:/usr/local/nginx/sbin/nginx -s reload

    2)阿里云赛门铁克的ssl证书

    image.png
    image.png
    image.png
    image.png
    image.png

    在/nginx/conf/目录下创建cert文件夹
    从windows向linux传输文件:
    下载putty里面的PSCP.EXE文件,解压
    cmd方式进入PSCP.EXE所在文件夹,执行以下指令:


    image.png
    进入nginx/conf打开nginx.conf文件,编辑如下:
    image.png

    5.frp内网穿透

    云服务器上操作如下:
    wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz:下载frp服务器端
    tar zxvf frp_0.21.0_linux_amd64.tar.gz:解压
    sudo vi frps.ini:服务器编辑frps.ini这个文件,修改如下:

    image.png
    bind_port是frp通信端口,vhost_http_port是frp所代理的端口,配置好保存文件退出,执行命令(./frps -c ./frps.ini)可看到启动日志。

    家庭电脑去下载:https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_windows_amd64.zip,根据系统位数不同下载相应的。
    本地电脑编辑frpc.ini文件:

    image.png
    目前的配置,server_addr是服务器地址,server_port是frp通信端口(要和服务端一致),local_port是本地服务端口(要和服务端一致),custom_domains是需要代理的服务器地址,保存文件退出,在cmd进入frp目录,执行frpc.exe,可看到启动日志:
    image.png
    启动正常的话可在服务端看到通信信息,打开浏览器www.wingsfinsh.com:8080能看到界面

    6.nginx转发配置

    服务器中打开nginx配置文件nginx.conf,

    image.png
    添加proxy_pass 地址指向frp代理地址,注释下边两行,保存退出后,执行
    /usr/local/nginx/sbin/nginx -t 测试无误后再执行
    /usr/local/nginx/sbin/nginx -s reload,浏览器打开https://www.wingsfish.com配置成功。

    7.linux可能用到的命令

    cd 文件夹名:进入文件夹
    cd .. :返回上级文件夹
    mkdir 文件夹名 :创建文件夹
    ls :查看文件夹下内容
    ps :查看当前进程
    kill -9 进程号 :杀死进程
    rm -rf 文件夹名 :删除文件夹(包含文件夹内容)
    frps 后台执行:
    nohup ./frps -c ./frps.ini &
    fg 切换到前台
    ctrl c 终止
    ctrl z 切换回后台挂起(停止)
    bg % 进程号 后台程序重新开始执行
    mv 目标1 目录2 :将目标1移动到目录2下,如果在同一个文件夹下,则是重命名。

    8.可能的问题:

    flask里用0.0.0.0:8080


    image.png

    云服务器有的服务商会限制端口,需要手工去打开以下端口:80,22,443,7000,8080
    centos防火墙需要关闭或者开放上述端口,注意centos6用的是iptable,而centos7用的是firewall

    相关文章

      网友评论

          本文标题:域名绑定IP及采用https方式访问教程

          本文链接:https://www.haomeiwen.com/subject/mjbjaftx.html