1 配置nginx转发

$ whereis nginx
$ cd /usr/local/nginx/conf
$ vi nginx.conf

  注释掉原来的html请求,增加uwsgi请求。

location / {
        # 包含uwsgi的请求参数
        include uwsgi_params;
        # 转交请求给uwsgi
        uwsgi_pass 172.17.0.11:8000;
}

2 修改uwsgi.ini配置

  打开Django工程目录下的Configurations目录中的uwsgi.ini

  如果直接访问uwsgi服务,则在uwsgi.ini中禁用http协议,改为socket协议。

  uwsgi.ini文件内容如下:

# 配置文件:这一行必须有,如果[uwsgi]直接顶行,ubuntu18.04找不到
[uwsgi]
#端口
# 服务器地址,不是外网地址,是服务器的ip地址
socket = 172.17.0.11:8000
# http = 172.17.0.11:8000
# Django工程目录
chdir = /publish/TongHeng
# wsgi的位置
module = TongHeng.wsgi
# 设置一个主进程
master = true
# 开放四个进程
processes = 4
# 每进程开放2个线程
threads = 2
vacuum = true
# 保存uwsgi.pid
pidfile = uwsgi.pid
log-maxsize = 500000000
logto = /tmp/uwsgi.log
buffer-size = 32768
enable-threads = true
reload-mercy = 8
harakiri = 60

3 重启nginx

$ /usr/local/nginx/sbin/nginx -s reload
$ ps -aux | grep nginx

4 启动uwsgi

$ cd /publish/TongHeng
$ uwsgi --ini config/uwsgi.ini
# 停止uwsgi服务
$ uwsgi --stop uwsgi.pid
#重启uwsgi服务
$ uwsgi --reload uwsgi.pid

  在浏览器中访问,此时,再访问8000端口已访问不到了,因为被nginx占用了。而nginx的端口号是80端口。是浏览器默认的端口。所以,直接访问IP+Url即可。

  到此,把nginx和uwsgi的转交完成了,浏览器可以远程访问服务器,但还是不能搜集到静态文件。

5 静态文件配置

5.1 在ubuntu服务器上创建一个目录,用于存储静态文件

$ mkdir /publish/static/

5.2 修改工程配置文件settings.py,设置静态文件路径

STATIC_ROOT='/publish/static'

5.3 搜集静态文件

  在服务器工程根目录下执行命令:

$ python manage.py collectstatic

5.4 修改nginx静态文件配置

$ cd /usr/local/nginx/conf
$ vi nginx.conf

  增加一个转发:

location /static {
        # 指定静态文件存放目录
        alias /publish/static/;
}

  至此,nginx配置文件就全部配置结束了。

  nignx.conf配置文件的全部内容(包括fastDFS配置,uwsgi配置)如下:

server {
        listen       80;
        server_name  49.235.75.157;
        location /group1/M00 {
            root /opt/fdfs/storage;
            ngx_fastdfs_module;
        }

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
        location / {
            # 包含uwsgi的请求参数
            include uwsgi_params;
            # 转交请求给uwsgi
            uwsgi_pass 172.17.0.11:8000;
            #uwsgi_param UWSGI_SCRIPT fastDFS.wsgi;
        }
        location /static {
            # 指定静态文件存放目录
            alias /publish/static/;
        }

6 重启nginx和uwsgi.ini

$ /usr/local/nginx/sbin/nginx -s reload
$ cd /publish/TongHeng
$ uwsgi --ini config/uwsgi.ini

  再从浏览器访问,可以接收到静态文件了。

09 部署nginx web服务器(转发uwsgi请求)的更多相关文章

  1. 08 部署nginx web服务器(转发fastDFS请求)

    先准备两个文件: fastdfs-nginx-module-master.tar.gz:fastDFS nginx安装包 nginx-1.17.3.tar.gz:nginx安装包 注:这两个包文件要匹 ...

  2. nginx web服务器概念了解 配置

    服务器 服务器 服务器是一种提供高效计算的机器,与普通的PC主机相比,具有可观的稳定性,高并发性,可扩展性. 互联网任何一个应用都是以服务器为基础设施的,没有服务器我们就无法访问网络上的任何内容,只能 ...

  3. nginx web服务器详解1(转)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeloda.blog.51cto.com/2033581/1285332 大 ...

  4. 20步打造最安全的NGINX WEB服务器

    Nginx 是一个轻量级的,高性能的Web服务器以及反向代理和邮箱(IMAP/POP3)代理服务器.它运行在UNIX,GNU /linux,BSD 各种版本,Mac OS X,Solaris和Wind ...

  5. 构建高效安全的Nginx Web服务器

    一 为什么选择Nginx搭建Web服务器 Apache和Nginx是目前使用最火的两种Web服务器,Apache出现比Nginx早.Apache HTTP Server(简称Apache)是世界使用排 ...

  6. asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。

    "Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值." 这个问题在开发需要上传文件的时候可能会遇到,今天遇到这个问题,百度过也有挺多的修改方法. 方法1: 修 ...

  7. asp.net 问题:Web 服务器上的请求筛选模块被配置为 拒绝包含的查询字符串过长的请求

    发现问题: post请求,在发送一个图片base64编码的字符串时,服务端报这个错误. 报错信息中给出了解决办法: 最可能的原因: Web 服务器上的请求筛选被配置为拒绝该请求,因为查询字符串过长. ...

  8. Ext.ux.UploadDialog上传大文件 HTTP 错误 413.1 - Request Entity Too Large Web 服务器拒绝为请求提供服务,因为该请求实体过大。Web 服务器无法为请求提供服务,因为它正尝试与客户证书进行协商,但请求实体过大。

    问题描述 问题:HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 原因:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(I ...

  9. 图解HTTP权威指南(三)| Web服务器对HTTP请求的处理和响应

    作者简介   李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络 ...

随机推荐

  1. React HOC(高阶组件)

    一.定义 高阶函数:函数接受函数作为输入,或者输出一个函数. 高阶组件:接受React组件作为输入,或是输出一个组件.即hocFactory:: W: React.Component => E: ...

  2. centos7系统中忘记了root管理员账号密码的解决方式

    随着计算机的使用越来越普遍,现在的用户都会有多个密码,不是这软件的密码就是那个的,QQ.邮箱.游戏,还有系统的登录密码!每一个密码都不一样!所以越来越多的密码需要去记住!也因为这样,只要其中一个长时间 ...

  3. 通过vsphere给esxi添加本地硬盘

    公司ESXi服务器的硬盘空间不够使用,现在新加了一块硬盘在ESxi服务器上.在服务器上添加完硬盘后,在Vsphere上是看不到新加硬盘的. 下面我们来通过虚拟机模拟该情况,先添加一块硬盘.如下图: 在 ...

  4. 第1章.Collections类、泛型类和Timing类概述

    1.1 群集(collection)的定义 群集是一种结构化的数据类型.它存储数据,并且提供数据的添加.删除.更新操作,以及对群集的不同属性值的设置与返回操作. 群集可以分为两类:线性的和非线性的. ...

  5. webpack安装jQuery报错

    使用webpack搭建项目,并使用了node下载了jQuery使用,使用命令行完成构建时发现报错了, ERROR in ./node_modules/jquery/lib/node-jquery.js ...

  6. SCPI指令闲扯

    准备用SCPI控制我的汉泰DSO3254示波器,实现如下的功能. 一通道采集数据,二通道作为触发,每触发一次,传输一和二通道采集到数据到电脑. 我以为可以如下设计:电脑发出指令,示波器电脑进入挂起状态 ...

  7. WebGL_0003:正则表达式查找字符串

    1,查找字符串,中间是变化的 files/assets/.*?/1/ .*? 表示中间是人一个字符

  8. 【Jmeter】jmeter提取response中的返回值,并保存到本地文件--BeanShell后置处理器

    有个需求,需要在压测环境中,创建几十万的账号数据,然后再根据创建结果,查询到某些账号信息. 按照之前我的做法,直接Python调用API,然后再数据库查询: 但是近期所有开发人员的数据库访问权限被限制 ...

  9. ng-起步

    目前,无论你使用什么前端框架,都必然要使用到各种 NodeJS 工具,Angular 也不例外.与其它框架不同,Angular 从一开始就走的"全家桶"式的设计思路,因此 @ang ...

  10. js 数据类型的转换

    1. 字符串转化为数字 Number(1) parseInt(1) parseFloat(1) 区别: number 参数只要含有非数字,结果就是NaN,