欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

部署nodejs项目和django项目到腾讯云服务器(20190905)

程序员文章站 2022-07-09 23:36:09
...

nginx代理nodejs

环境:
腾讯云服务器Ubuntu18.04,nodejs-v8.10.0
工具:

过程

  1. 在服务器上安装与项目相同的nodejs环境以及用到的模块
  2. 使用pm2 start xxx.js 命令启动nodejs的启动文件
  3. 按下文给的方式配置nginx,然后使用service nginx start 命令启动nginx服务器

特别注意:

配置成功后在浏览器访问时一直报502 bad getway的错误,然后询问度娘,试了各种办法都没有解决,后面又查看/var/log/nginx/error.log日志文件,报了upstream prematurely closed connection while reading response header from upstream 这个错,继续百度,搞了半天还是不行。最后不使用nginx,直接用node启动, 又报没有mime.getType()这个函数。。。。发现有npm install -g 安装mime模块就没有getType()这个函数,直接npm install mime 不带-g选项就有那个函数(也不知道为啥/无奈), -g选项是全局安装。

nginx配置

其他配置默认不变, 我是菜鸟一枚也不敢乱动:), 修改/etc/nginx/sites-enabled/default或者在/etc/nginx/conf.d/下面新建一个后缀为.conf的文件, 配置如下内容。

server {
	    listen 80 default_server;
        listen [::]:80 default_server;
        server_name 域名或IP;
        location / {
	        proxy_http_version 1.1;
	        proxy_set_header Connection "";
	        proxy_set_header X_Real_IP $remote_addr;
	        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
	        proxy_set_header Host $http_host;
	        proxy_set_header X-NginX-Proxy true;
	        #proxy_set_header Upgrade $http_upgrade;
	        proxy_pass http://127.0.0.1:端口号; # 端口号和nodejs配置的端口号一致
	}
}

nginx + uwsgi 部署django项目

环境:
腾讯云服务器Ubuntu18.04,Django-1.11.8, Python3.6.8, MySQL5.7

过程

  1. 在服务器上安装与项目相同的Python及相关模块、Django以及数据库
  2. 在Django项目下创建一个与wsgi.py同级目录的uwsgi.ini文件,并按后面的代码配置。并用在该目录下用uwsgi --ini uwsgi.ini 启动uwsgi。
    [uwsgi]  #  这一行必须有
    socket=127.0.0.1:端口号   (端口号自己定)
    chdir=项目绝对路径
    wsgi-file=wsgi.py 的绝对路径 (项目的相对路径/wsgi.py也行,不过还是绝对路径好,不容易出错)
    process=2
    thread=2
    master=true
    vacuum=true
    pidfile=uwsgi.pid
    daemonize=server.log
    
  3. 按下文给的方式配置nginx, 然后使用service nginx start 命令启动nginx服务器

nginx配置

特别注意: 端口号默认是80 需要在腾讯云安全组里添加你所使用的端口号。
其他配置还是默认不变, 修改/etc/nginx/sites-enabled/default或者在/etc/nginx/conf.d/下面新建一个后缀为.conf的文件, 配置如下内容。

server {
        listen 8000;   # 特别注意 
        charset utf-8;
        client_max_body_size 75M;

        server_name 域名或IP;
        location / {
                uwsgi_pass 127.0.0.1:端口号;  # 与uwsgi.ini里的配置的端口号一直
                include uwsgi_params;
        }
        # 静态资源
        location /media {
                root 静态资源的绝对路径;
        }
}
相关标签: 后端笔记