目录
- 一、创建服务器
- 1、进入AWS官网
- 2、启动实例
- 3、创建新密钥对
- 4、选择密钥对
- 5、网络设置
- 6、配置存储
- 7、启动实例
- 8、查看实例
- 9、配置安全组
 
 
- 二、连接服务器
- 1、在AWS官网进行连接
- 2、使用Xshell7进行连接
- 3、设置允许root登录
 
 
- 三、域名解析
- 1、进行腾讯云官网
- 2、管理域名解析
- 3、绑定公有 IPv4 地址
- 4、下载SSL证书
 
 
- 四、配置服务器环境
- 1、查看系统版本
- 2、查看Python版本
- 3、更新apt
- 4、安装pip
- 5、更换pip镜像源
- 6、安装django
 
 
- 五、启动Django项目
- 1、创建项目文件夹
- 2、获取项目
- 3、启动Django项目
- 4、关闭项目
 
 
- 六、用uwsgi进行部署
- 1、安装uwsgi
- 2、新建uwsgi.ini文件
- 3、启动Django项目
 
 
- 七、用nginx进行部署
- 1、安装netstat
- 2、关闭uwsgi服务
- 3、修改uwsgi.ini文件
- 4、再次启动uwsgi服务
- 5、安装nginx
- 6、查看nginx版本
- 7、查找nginx.conf配置文件的路径
- 8、修改nginx.conf文件
- 9、启动nginx
 
 
- 八、nginx适配ssl证书
- 1、上传ssl证书到服务器
- 2、修改nginx.conf文件
- 3、重启nginx服务
 
 
- 九、注意事项
- 1、注意事项
- 2、gitee常用命令
 
 
一、创建服务器
以AWS(亚马逊Web服务)为例
1、进入AWS官网
AWS官网网址
 
2、启动实例

 
3、创建新密钥对

 创建密钥对之后会下载到电脑本地,一定要保存好:
 
4、选择密钥对

5、网络设置

6、配置存储

7、启动实例

8、查看实例

 勾选实例,可以查看该实例,记住这里的公有 IPv4 地址;
发现ping不通:
 
9、配置安全组
点击这个安全组,然后进去;
 
 
 
 将SSH的选为所有流量,并保存规则;
 
 在本机电脑的cmd,发现可以ping得通了:
 
 注:这里一定要能够ping得通;
二、连接服务器
1、在AWS官网进行连接

 
 发现可以连接得上:
 
2、使用Xshell7进行连接

 
 
 鼠标选中Public Key之后,点击设置;
 
 
 找到刚才在创建密钥对时下载的密钥文件:
 
 选中导进来的密钥之后点击确定:
 
 
 
 
 
 发现可以登进来了:
 
3、设置允许root登录
设置root密码:
sudo passwd root
切换到root账户:
su - root

 给ubuntu用户设置密码:
passwd ubuntu
修改ssh配置文件:
vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password  改成  PermitRootLogin yes
PasswordAuthentication no  改成  PasswordAuthentication yes
UsePAM yes  改成  UsePAM no

 
 :wq保存并退出;
修改authorized_keys文件:
sed -ri 's/^/#/;s/sleep 10"\s+/&\n/' /root/.ssh/authorized_keys
重启sshd.service:
systemctl restart sshd.service

 现在可以用Xshell7进行root连接了;
 选中“新建会话”,鼠标右键点击,选择属性:
 

 
三、域名解析
以腾讯云为例
1、进行腾讯云官网
腾讯云域名注册网址
 
2、管理域名解析

3、绑定公有 IPv4 地址

4、下载SSL证书
如果没有获取SSL证书,要点击获取一下:
 
 
 后面搭建服务器要用到nginx,所以这里下载对应的nginx证书就可以了:
 
 下载好之后解压:
 
 可以得到这4个文件:
xxx.csr
xxx.key
xxx_bundle.crt
xxx_bundle.pem
四、配置服务器环境
1、查看系统版本
lsb_release -a

 可以看到,我这里使用的是Ubuntu22.04;
2、查看Python版本
python3 -V

 可以看到,我这里使用的是Python3.10.6;
3、更新apt
在我们安装任何软件之前,请务必通过运行以下命令来确保您的系统是最新的 apt 终端中的命令:
apt update
apt upgrade
apt install wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
注:
 遇到问句,输入y就可以了;
 遇到界面形式的,Tab到OK,然后Enter就差不多可以了;
 
 
 
 
 
 
4、安装pip
现在正式安装pip:
apt-get install python3-pip

 
 
 安装完成,查看pip版本:
pip3 -V

 可以看到,我这里使用的是pip22.0.2;
5、更换pip镜像源
家目录~下创建.pip文件夹
mkdir ~/.pip 
创建pip.conf文件
vi ~/.pip/pip.conf
将以下内容复制进pip.conf中
[global]
index-url = https://repo.huaweicloud.com/repository/pypi/simple/
[install]
trusted-host=repo.huaweicloud.com
:wq保存并退出;
 可以看到,我这里使用的是华为云镜像源;
6、安装django
pip3 install django

 可以看到,我这里使用的是django4.1.3;
五、启动Django项目
1、创建项目文件夹
利用Xftp便捷的功能新建/data/www文件夹,并进入:
 
 
2、获取项目
这里利用git命令获取示例项目
git clone https://gitee.com/leaftest/testdjango.git
3、启动Django项目
这里使用django自带的wsgi模式启动Django项目;
 进入项目文件夹下面的目录下面:
cd /data/www/testdjango
启动项目:
python3 manage.py runserver 0.0.0.0:8000

可以看到,这里django项目默认启动的是8000端口;
 现在,就可以在电脑本机进行访问了【也可以换成自己域名进行访问,也要加端口号:8000】:
 
 注意这里的网址前缀是http://
4、关闭项目
直接在刚才启动的地方按键Ctrl+C就可以了;
 
六、用uwsgi进行部署
1、安装uwsgi
pip3 install uwsgi

 查看uwsgi版本:
uwsgi --version

 可以看到,我这里使用的是uwsgi2.0.20;
2、新建uwsgi.ini文件
在项目下新建uwsgi.ini文件:
 
 uwsgi.ini文件内容如下:
[uwsgi]
http=0.0.0.0:8000
chdir=/data/www/testdjango
wsgi-file=/data/www/testdjango/testdjango/wsgi.py
pidfile=/data/www/testdjango/uwsgi.pid
daemonize=/data/www/testdjango/uwsgi.log
解释说明:
http=0.0.0.0:8000 # 外部通过http方式访问;
chdir=/data/www/testdjango # 项目目录
wsgi-file=/data/www/testdjango/testdjango/wsgi.py # 加载项目下的wsgi.py文件
pidfile=/data/www/testdjango/uwsgi.pid # 指定pid文件,避免启动后不能操作窗口
daemonize=/data/www/testdjango/uwsgi.log # 指定log文件,避免启动后不能操作窗口 
3、启动Django项目
用uwsgi方式启动django项目之前,记得先把刚才的wsgi方式启动的关掉,然后进入刚才新建了uwsgi.ini文件的目录下;
 用uwsgi方式启动django项目的命令:
uwsgi --ini uwsgi.ini

现在,就可以在电脑本机进行访问了【也可以换成自己域名进行访问,也要加端口号:8000】:
 
 注意这里的网址前缀是http://
七、用nginx进行部署
1、安装netstat
apt install net-tools

 
2、关闭uwsgi服务
先找到uwsgi启动的进程号:
netstat -apn|grep uwsgi

 结束对应进程:
kill -9 16767
再检查一下:
netstat -apn|grep uwsgi

3、修改uwsgi.ini文件
修改为:
[uwsgi]
socket=0.0.0.0:8000 # 这里修改一下就可以了
chdir=/data/www/testdjango
wsgi-file=/data/www/testdjango/testdjango/wsgi.py
pidfile=/data/www/testdjango/uwsgi.pid
daemonize=/data/www/testdjango/uwsgi.log
4、再次启动uwsgi服务
uwsgi --ini uwsgi.ini

5、安装nginx
apt-get install nginx

 
 
6、查看nginx版本
nginx -v

 可以看到,我这里使用的是nginx1.18.0;
7、查找nginx.conf配置文件的路径
nginx -t

 我这里在/etc/nginx/目录下,进去,修改nginx.conf配置文件
8、修改nginx.conf文件
原文件内容如下:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
	worker_connections 768;
	# multi_accept on;
}
http {
	##
	# Basic Settings
	##
	sendfile on;
	tcp_nopush on;
	types_hash_max_size 2048;
	# server_tokens off;
	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;
	include /etc/nginx/mime.types;
	default_type application/octet-stream;
	##
	# SSL Settings
	##
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;
	##
	# Logging Settings
	##
	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;
	##
	# Gzip Settings
	##
	gzip on;
	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
	##
	# Virtual Host Configs
	##
	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}
#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
#
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}
直接替换为:
# 不开启ssl的成功版本
events {
    worker_connections  1024;
}
http {
    upstream django {
       server 127.0.0.1:8000; #web的socket端口
    }
    server{
        listen 80; # 监听80端口
        server_name localhost; 
          
        location / { 
            include uwsgi_params; 
            uwsgi_pass django; 
        }
    }
}
9、启动nginx
nginx

 可以看到,80端口被占用;
netstat -apn|grep 80

结束对应进程:
kill -9 17349
再次启动nginx:
nginx

 在本地浏览器进行访问,可以看到并不安全【也可以换成自己域名进行访问】:
 
 注意这里的网址前缀是http://
 另外,这里的访问可能会失败,可能是浏览器缓存导致的原因。
也可能是uwsgi服务不小心关闭了,查看一下进程还在不在,没有了就去启动一下:
netstat -apn|grep uwsgi
uwsgi --ini uwsgi.ini
八、nginx适配ssl证书
1、上传ssl证书到服务器
这里需要将之前在腾讯云下载的ssl证书放到指定的位置:/etc/nginx/cert/
 没有文件夹就新建;
2、修改nginx.conf文件
直接替换为【ssl证书地址改成自己的】:
# 开启ssl的成功版本
events {
    worker_connections  1024;
}
http {
    upstream django {
        server 127.0.0.1:8000; # web的socket端口
    }
    server {
        listen 80; # 监听80端口
        server_name localhost;
        rewrite ^(.*)$ https://$host$1 permanent;
    }
    server {
        listen 443 ssl; # 监听443端口并开启ssl
        server_name  localhost;
        ssl_certificate /etc/nginx/cert/xxx_bundle.crt; # pem文件也行,这里替换成自己的ssl证书地址
        ssl_certificate_key /etc/nginx/cert/xxx.key; # 这里替换成自己的ssl证书地址
        location / {
            include uwsgi_params;
            uwsgi_pass django;
       }
    }
}
3、重启nginx服务
先找到,再结束进程,再启动:
netstat -apn|grep nginx
kill -9 18455
nginx

 在本地电脑采用域名访问,可以看到,是安全的:
 
 注意这里的网址前缀是https://
九、注意事项
1、注意事项
由于浏览器存在缓存等原因,可能导致调试不成功;
 推荐浏览器:谷歌浏览器、微信的内置浏览器;
 由于Ubuntu、Python、Django、uwsgi、nginx的版本原因,可能导致调试不成功;
2、gitee常用命令
git init
git remote add origin https://gitee.com/leaftest/testdjango.git
git add .
git commit -m 'init'
git push origin master
git clone https://gitee.com/leaftest/testdjango.git
git pull origin master
免责声明:
1.编写此文是为了更好地学习,如果损害了有关人的利益,请联系删除;
2.如果文中描述欠妥,请在评论中进行指正;
3.文字编写不易,若感觉有用,点赞收藏关注会让博主很开心哦;
4.此外,转载请注明出处,非常感谢!!!
本文源自:https://blog.csdn.net/testleaf/article/details/128692183







![[Android Input系统]MotionEvent的序列化传送](https://img-blog.csdnimg.cn/img_convert/c53809dd73c581d0d3ecf30e4ebc77c0.png)











