宝塔版:nginx+uwsgi+django配置(含内网穿透FRP)

一、宝塔简介

宝塔Linux面板是一款服务器可视化管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。

本文演示Nginx,uwsgi,Django,mysql安装过程

二、安装宝塔

  1. ssh安装命令
    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
    
    完整命令列表(仅上面一行命令即完成安装)
  2. 进入控制面板
    安装完成后,ssh命令行会展示:内外网登录网址,账号,密码

    端口问题:任何端口操作,都要同时放行云服务器端口、宝塔面板安全选项下端口,否则请求都会被拒绝
    多网页模式:一个服务器可以部署多个动态或静态网站

三、登录面板操作

3.1 面板初始化设置

在这里插入图片描述

3.2 自动安装设置

点击首页,会自动弹出推荐安装套件,一般不需修改,点击一键安装即可
在这里插入图片描述

3.3 配置设置

  1. 等待安装完成后,点击软件商店,点开Nginx首页显示
    在这里插入图片描述
  2. 搜索Python项目管理器安装,点开首页显示(Django会用到)

四、静态和动态网站设置

4.1 静态网站设置

  • 网站设置
    在这里插入图片描述
  • HTTPS证书设置(可选项)
    在这里插入图片描述
  • 上传完index.html文件后,重启下Nginx(首页->软件栏->nginx->重启按钮)

4.2 动态网站设置(Django)

  1. 在/www/wwwroot下新建目录,示例:doubi.com
  2. 重要)上传Django项目到doubi.com目录下,requirements.txt文件放在doubi.com下,目录结构如下在这里插入图片描述
  3. 配置Django及uwsgi
    • 配置初始化(3000端口对外可以不用开放,只是内部转发) 在这里插入图片描述
    • 依赖安装完成后面板内
      • 修改项目根目录(特别特别重要):点配置–>修改
        chdir = /www/wwwroot/doubi.cn
        chdir = /www/wwwroot/doubi.cn/main
        否则浏览器会显示internal server error,或50*错误
      • 映射网页:点映射->输入doubi.com
  4. 配置HTTPS证书:参考静态网站,现在输入网址即可访问

4.3 动态网站进阶版

  • 实现目的:静态页面放在云服务器端,动态Django项目放在家里局域网服务器里
  • 内网穿透:常规一个公司或一个小区内的所有电脑都处于运行商设计的局域网内,若在百度里输入IP 产生的结果和用命令ipconfig产生的结果不一样,则处于局域网内部,内网穿透技术旨在使内网主机和云服务器的端口产生映射关系,即访问云服务器的固定端口如:http://doubi.com:9000,会映射到局域网的固定PC的固定端口上如:http://192.168.1.123:6000

4.3.1 FRP内网穿透

  • 下载
  • 公网服务器设置
    • 公网服务器配置文件:frps.ini
      [common]
      # 服务器与内网PC间的通信端口
      bind_port = 7001				
      # 通信密码,最好别用常用密码
      token = 1234567890
      
    • 公网服务器服务文件:systemd文件夹下的frps.service
      [Unit]
      Description=Frp Server Service
      After=network.target
      
      [Service]
      Type=simple
      # 只改下面这一句,关注frps和frps.ini位置
      ExecStart=nohup /root/bin/frp/frps -c /root/bin/frp/frps.ini 
      
      [Install]
      WantedBy=multi-user.target
      
    • 启动
      • 偷懒将frp文件夹拷贝到/root/bin文件夹内,将frps.service放在/lib/systemd/system文件夹内
      • 启动服务
        systemctl daemon-reload			# 重新加载服务配置文件
        systemctl start frps.service	# 启动服务
        systemctl enable frps.service	# 设置开机启动
        systemctl status frps.service	# 查看服务启动情况
        systemctl stop frps.service     # 关闭服务
        

  • 内网PC设置
    • 内网PC配置文件:frpc.ini
      [common]
      # 公网IP地址和端口,需与frps.ini对应
      server_addr = 12.23.45.67
      server_port = 7001
      token = 1234567890
      
      [ssh]
      type = tcp
      local_ip = 127.0.0.1
      local_port = 22
      # 宝塔和云服务器此端口都要打开,此端口用于ssh方式通过公网进入内网PC的22接口
      remote_port = 6010
      
      [api]
      type = tcp
      local_ip = 127.0.0.1
      local_port = 80
      # 宝塔和云服务器此端口都要打开,此端口用于接收通过http://doubi.com:6020的网络请求
      remote_port = 6020
      
      [bt_pannel]
      type = tcp
      local_ip = 127.0.0.1
      local_port = 8888
      # 宝塔和云服务器此端口都要打开,此端口用于连接内网PC的宝塔控制面板
      remote_port = 10004
      
    • 公网服务器服务文件:systemd文件夹下的frpc.service
      [Unit]
      Description=Frp Client Service
      After=network.target
      
      [Service]
      Type=simple
      # 只改下面这一句,关注frpc和frpc.ini位置
      ExecStart=nohup /root/bin/frp/frpc -c /root/bin/frp/frpc.ini
      
      [Install]
      WantedBy=multi-user.target
      
    • 启动
      • 偷懒将frp文件夹拷贝到/root/bin文件夹内,将frps.service放在/lib/systemd/system文件夹内
      • 启动服务
        systemctl daemon-reload			# 重新加载服务配置文件
        systemctl start frpc.service	# 启动服务
        systemctl enable frpc.service	# 设置开机启动
        systemctl status frpc.service	# 查看服务启动情况
        systemctl stop frpc.service     # 关闭服务,每次有新增端口都要重新启动下服务
        

4.3.2 部署动态网站(Django)

  • 云服务器
    在这里插入图片描述
    补充:黄框内为上一个大括号拷贝复制的,相关反向代理的正则表达式见此链接
    重启Nginx,以后http://doubi.com/api会被云服务器通过FRP转发给内网的http://192.168.1.123:80
  • 内网PC设置
    • 关闭Nginx,配置Django及uwsgi同本页第4.2条,但端口号改为80
    • 重启uwsgi
    • 输入http://doubi.com/api,即可进入内网Django项目

跳转到:命令行版:nginx+uwsgi+django配置

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页