Ubuntu16.04 nginx+uwsgi二级目录

笔者在同一台服务器上部署了django和php,为了使两者共存而想到了将django项目部署到二级目录下,而nginx则使用的反向代理

django中uwsgi的配置文件

[uwsgi]
chdir = /var/www/html/api
module = api.wsgi
master = true
processes = 10
#socket = :8080
http = :8080
vacuum = true
pidfile = /tmp/uwsgi.pid

nginx默认是将用户的请求通过socket与django通信,如果使用了nginx的反向代理之后访问则会通过http与django通信,所以上面的配置文件中需要将socket注释掉,取而代之的则是http = :8080

主要需要修改的是nginx的配置文件

upstream django {
    server 127.0.0.1:8080;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
    server_name _;
    location / {
        try_files $uri $uri/ =404;
    }

    location /api {
        # 这里为django项目的配置内容
        uwsgi_pass django;
        proxy_pass http://django/api;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        include /var/www/html/api/uwsgi_params;
    }

    location ^~ /api/static {
        alias /var/www/html/bill/static;
    }   

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

在浏览器中则可以使用http://服务器IP/api/,访问到django项目

原文地址:https://blog.51cto.com/14284354/2414176

时间: 2024-11-04 13:26:53

Ubuntu16.04 nginx+uwsgi二级目录的相关文章

Nginx配置二级目录/路径 映射不同的反向代理和规避IP+端口访问

   当配置Nginx来映射不同的服务器 可以通过二级路径来反向代理 来解决一个外网端口实现多个服务访问. 配置如下: server { listen 80; server_name demo.domain.com; #通过访问service二级目录来访问后台 location /service/ { #DemoBackend1后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点导致404 proxy_pass http://backend1/; proxy_redirect of

nginx rewrite二级目录跳转带斜线

由于网站url有自定义的二级目录,例如http://www.example.com/ppt ,这里需要在ppt这个二级目录后面强制加斜线.这时候就需要做rewrite规则了.网上都没有查到正确的方法.这个还是同事告我的,已实践 rewrite ^/([a-zA-Z]+)$ /$1/ permanent;

Workpress搭建经验 (ubuntu16.04+nginx+mysql+php7)

一直想着要拥有一个属于自己的博客,也不知道该怎么搭建.最近这段时间开始接触了云服务器,才发现了有wordpress这么个东西,看介绍好像是挺简单的,什么5分钟快速搭建,那会是一下子觉得离梦想只有5分钟的距离了.So easy,马上开干,但真正开始搭建的时候,才发现里面的水有多深,到最后完成安装整整花了一天的时间. 简单描述下过程.其实主要的问题还是出在了环境配置上,如果环境都配置OK,那的确是5分钟的事情. 首先把wordpress官网下载压缩包,中文官网上的并不是最新版,于是在英文官网上下了安

Ubuntu16.04 下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

由于用的新版本系统,和旧的稍有差别,在网上搜了很多相关资料,搞了三天终于搞好在Ubuntu16.04下的部署,接下来就详细写写步骤以及其中遇到的问题.前提是安装有虚拟环境pyenv+virtualenv. 一.安装uwsgi 1. 在虚拟环境下安装uwsgi 1 # 启动环境 2 pyenv activate your_env_name 3 pip install uwsgi 2. 测试uwsgi,创建test.py def application(env, start_response): s

django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)

1.前期准备 1.打开Terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用. pip freeze >requirements.txt 2.将项目文件夹→右键→添加压缩文件,压缩为zip包 3.准备软件 1.xshell(用于远程操作服务器) 2.FileZilla(用于从客户端将项目包上传到服务器) 3.Navicat 12 (用于同步数据库) 4.环境 云服务器/云主机:京东云 (云服务还是要选大厂的,我也试过一些比较小的厂的云服务,不说是哪家了,哇,简直是坑啊,

如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)

因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录. 以前硬编码的URL可惨了. 还涉及到upload目录,静态目录,websocket目录. 全用{% url %}问题不太大. nginx分前后两级,uwsgi配置要作相应更改,django的setting需要变量登陆网址. 这样,在正式网站访问二级目录,测试环境仍然可以根目录访问. nginx_front: server { listen 80; server_name localhost; location /

Ubuntu16.04上使用Nginx部署Laravel应用程序

Laravel 是一个非常流行的PHP框架,以编码风格优雅著称,每行代码都非常简洁,富有表达力,并且拥有强大的组件开发生态,号称为web艺术家创造的PHP框架.我最近的个人项目尝试了下Laravel框架,部署的的时候遇到了一些坑,这里记录下. 我用的服务器是DigitalOcean的Ubuntu 16.04 LTS,其他公司的服务器应该也大同小异,有一些公司甚至简化了安装流程,几乎不用改动配置文件就可以让自己的程序跑起来(比如阿里云 安装依赖 更新apt-get 1 sudo apt-get u

Thinkphp在nginx设置同域名二级目录访问

Thinkphp在nginx设置同域名二级目录访问,是因为最近弄一个小程序项目,要https,但是只有单个域名,不能通配域名,所有只好用二级目录,thinkphp二级目录访问要怎么设置呢 下面是nginx代码演示 server { listen 80; server_name www.dc3688.com; root /home/www/www.dc3688.com; location /huaqi/ { index index.php index.html index.htm; if (!-e

带二级目录的Nginx配置------目前找到的最简单的方法

由于项目不知一个,所以不得不为每一个项目建一个专有的文件夹,这就导致了在配置nginx的时候会出现二级目录 目前找到的最简单的方法 - step1:修改 vue.config.js 添加配置 baseUrl: '/dist/', - step2:修改 router/index.js const router = new VueRouter({ mode: 'history', base: '/dist/', routes }) - step3: 配置nginx 在本地目录下,创建conf.d文件