时间:2022-03-02来源:www.pcxitongcheng.com作者:电脑系统城
推荐使用anaconda进行python环境的管理,因python环境容易出现各种版本冲突问题
1 2 |
wget https: //repo .anaconda.com /archive/Anaconda3-2020 .11-Linux-x86_64.sh bash Anaconda3-2020.11-Linux-x86_64.sh |
一路回车,有提示后“yes”再回车,这里安装到的目录在/root下
把conda添加到环境变量
1 | vim /etc/profile |
在文件末尾添加
1 2 |
PATH=$PATH: /root/anaconda3/bin # 根据目录情况 export PATH |
启用环境变量
1 | source /etc/profile |
新增合适的虚拟环境
1 2 3 4 5 |
conda env list # 查看环境 conda create -n myDjango python=3.7.5 conda activate myDjango # 启动虚拟环境时可能需要先 source activate |
需要的有django,uwsgi,nginx
1 2 3 |
pip install django # 版本为4以上 pip install uwsgi yum install nginx |
使用查看版本语句查看是否安装成功
1 2 3 |
python -m django --version uwsgi --version nginx -V |
可在pycharm中一键创建,也可以使用命令行创建
1 | django-admin startproject mysite |
获得目录如下
1 2 3 4 5 6 7 8 |
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py |
创建应用
1 | python manage.py startapp myApp |
得到app目录如下,可在此编写视图模块等,然后在urls内编写路由以提供访问,不再赘述
1 2 3 4 5 6 7 8 9 |
myApp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py |
可使用xftp,filezilla或宝塔之类
在以放到服务器上的django项目目录下创建uwsgi.ini文件,即uwsgi配置
我的项目目录为/home/mysite
1 2 3 4 5 6 7 8 9 10 |
[uwsgi] chdir= /home/djangoProject # 项目位置 #socket=:8000 # 通过nginx使用的配置 http=:8000 # 单独启动时使用的配置 wsgi- file = /home/djangoProject/djangoProject/wsgi .py # 项目中wsgi文件位置 process=4 threads=2 pidfile=uwsgi.pid # 生产pid,log文件,以查看日志和pid信息 daemonize=uwsgi.log master=True |
此时可以启动uwsgi来启动项目
1 2 |
uwsgi --ini uwsgi.ini # 通过刚创立的ini配置来启动,会生成pid和log文件 uwsgi --stop uwsgi.pid # 必须使用pid文件来停止程序 |
此时可以使用端口查看语句查看程序是否已经运行
1 | netstat -tlnp| grep 8000 # django程序默认开启端口为8000,也可在ini文件中自行修改 |
若已成功启动,一句可以通过访问域名/ip:8000访问django程序
首先需要将uwsgi.ini配置进行更改,取消http,打开socket
1 2 3 4 5 6 7 8 9 10 |
[uwsgi] chdir= /home/djangoProject # 项目位置 socket=:8000 # 通过nginx使用的配置 #http=:8000 # 单独启动时使用的配置 wsgi- file = /home/djangoProject/djangoProject/wsgi .py # 项目中wsgi文件位置 process=4 threads=2 pidfile=uwsgi.pid # 生产pid,log文件,以查看日志和pid信息 daemonize=uwsgi.log master=True |
nginx配置文件默认在/etc/nginx/nginx.conf,需要编辑的是http下的server内容
location中增加两个内容
1 2 |
uwsgi_pass 0.0.0.0:8000; # 与uwsgi.ini文件配置的socket保持一致 include /etc/nginx/uwsgi_params ; # 引用nginx的uwsgi_params载入参数 |
server部分如下
1 2 3 4 5 6 7 8 9 10 11 12 13 |
server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html ; # Load configuration files for the default server block. include /etc/nginx/default .d/*.conf; location / { uwsgi_pass 0.0.0.0:8000; include /etc/nginx/uwsgi_params ; } } |
可以用nginx -t语句检查是否合法
通过server语句启动/停止/重启 nginx
1 | server nginx start /stop/restart |
nginx默认开启端口为80,也可通过查看端口情况观察是否成功开启
1 | netstat -tlnp| grep 80 |
若启动成功则nginx反向代理成功,已经可以通过访问80端口访问django程序
需要在服务器代理厂商处申请ssl证书并下载nginx版本,将得到包含域名在内的证书文件.pem和证书密钥.key,将两个文件传输到服务器nginx目录下,最好建立一个证书专用目录
更改nginx.conf配置文件server内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name _; root /usr/share/nginx/html ; ssl_certificate "/etc/nginx/cert/证书名.pem" ; ssl_certificate_key "/etc/nginx/证书密钥.key" ; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default .d/*.conf; location / { uwsgi_pass 0.0.0.0:8000; include /etc/nginx/uwsgi_params ; } error_page 404 /404 .html; location = /40x .html { error_page 500 502 503 504 /50x .html; location = /50x .html { } |
注:每次更改nginx配置都需要重启nginx服务才能生效
2024-07-07
myeclipse怎么导入tomcat教程2024-07-07
myeclipse如何启动tomcat2024-07-07
myeclipse如何绑定tomcat上线了一个小的预约程序,配置通过Nginx进行访问入口,默认的日志是没有请求时间的,因此需要配置一下,将每一次的请求的访问响应时间记录出来,备查与优化使用....
2023-03-17