部署nodejs项目和django项目到腾讯云服务器(20190905)
程序员文章站
2022-07-09 23:36:09
...
nginx代理nodejs
环境:
腾讯云服务器Ubuntu18.04,nodejs-v8.10.0
工具:
- pm2
* 安装: npm install -g pm2
* 用法:参考大佬博客https://www.cnblogs.com/hai-cheng/p/8690115.html
过程
- 在服务器上安装与项目相同的nodejs环境以及用到的模块
- 使用pm2 start xxx.js 命令启动nodejs的启动文件
- 按下文给的方式配置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
过程
- 在服务器上安装与项目相同的Python及相关模块、Django以及数据库
-
在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
- 按下文给的方式配置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 静态资源的绝对路径;
}
}
上一篇: python模块和包