安装nginx
sudo apt update -y
sudo apt install nginx -y
启动nginx
sudo systemctl start nginx
查看启动状态,如果启动状态为active,则表示安装成功
sudo systemctl status nginx
启动之后如果域名没有备案,会提示域名没有备案,使用不了域名,但是可以使用ip端口
nginx的名字可以随便配置,但是后缀一定是conf
1.配置上传流
upstream xceshi_prod {
# 此处为uwsgi运行的ip地址和端口号
server 172.17.48.137:8000;
}
配置服务
server {
# 监听端口
listen 80;
# 服务器域名或者ip地址
server_name 39.97.116.6 .machunliang.top;
# 编码
charset utf-8;
# 文件最大上传大小
client_max_body_size 75M;
# 媒体文件
location /media {
alias /home/machunliang/xceshi_pro/xceshi/media;
}
# 静态文件
location /static {
alias /home/machunliang/xceshi_pro/xceshi/static;
}
# 主目录
# 这里是反向的代理,也就是如果你的url地址是以media或static开头就去项目中的media或static中去找
# 如果url不是media或static开头,他就会把这个路径资源请求交给这个upstream上传器,上传流的加载器
location / {
uwsgi_pass xceshi_prod;
# 这里的反向代理名称要和上面的upstream的加载器名称一样
include /etc/nginx/uwsgi_params;
}
# 弄完把nginx配置复制到/etc/nginx/conf.d文件夹中
# 然后把/etc/nginx的文件夹里的nginx.conf的这个文件的user改成虚拟环境当前的用户
然后保存好退出
运行命令sudo nginx -t -c /etc/nginx/nginx.conf
出现下图sucessful运行nginx即为成功
运行nginx成功之后还要重新加载nginx配置
命令:sudo nginx -s reload -c /etc/nginx/nginx.conf
或者sudo systemctl reload nginx也可以重新加载配置
重新加载配置之后再浏览器输入域名或者ip查看一下项目可以看到502报错
为什么502报错,因为我们的uwsgi服务还没有启动
用为uwsig服务没有启动,但是我们静态文件可以访问
所以可以通过域名或者网址进行静态文件访问,就是说这个图片是nginx提供的服务,并不是runserver
也就是nginx的反向代理服务和静态文件访问是分开的是独立的,哪怕uwsgi服务不启动,也不影响静态文件访问
启动uwsgi服务,这里需要进入虚拟环境启动,还要把当前目录切换到delop中
uwsgi --ini uwsgi_conf .ini &