官网地址:nginx.org/en/download.h
Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版
这里我以linux环境为例,咱们下载Stable version
1.需要安装gcc环境
centos版本:
# yum install gcc-c++
ubuntu版本: ununtu版本的将yum换成 apt-get即可,例
apt-get install gcc-c++
2 zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel
3 openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,
并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
由于在服务器上安装可能会有网络问题,所以我们现在本机下载好,通过xftp上传到服务器上,下面我们先下载俩个工具
Xshell是一款远程连接linux服务器的软件,下载地址:
家庭/学校免费 - NetSarang Website (xshell.com)
然后去邮箱查看下载地址,点击下载,
点击即可下载,不要安装在c盘,其他默认配置即可。
好现在我们正式开始操作:
打开XFTP:
好的连接成功,首先我们先创建一个文件夹放置安装包,双击进入文件夹
把刚才下载的nginx文件直接CTRL+C、CTRL+V复制到上面创建的那个文件夹
然后打开XShell,
连接成功后,进入刚才我们创建的文件夹,
cd /mypath
如果不记得文件名字可以输入
ls
开始解压
tar zxvf nginx-1.22.0.tar.gz
编译和安装
cd /nginx-1.22.0
./configure
make && make install
安装成功的话会在/usr/local/下出现一个新的目录 nginx,根据需要修改此目录下的配置。
启动
cd /usr/local/nginx/sbin
./nginx
查看是否启动
ps -aux | grep nginx
补充
systemctl start nginx//启动nginx
systemctl restart nginx//重启nginx
systemctl stop nginx//关闭nginx
直接使用pip管理安装(如果没有下载python,可以自己下载,这里不介绍)
pip3 install uWSGI
将你的flask项目导入服务器,进入文件夹,在app.py的同级目录下创建uwsgi.ini文件
右键使用记事本打开,并写入下面这段代码:
[uwsgi]
socket=127.0.0.1:5000 # 启动程序时所使用的地址和端口,通常在本地运行flask项目,
chdir = /home/flaskproject/ # 项目目录
wsgi-file = app.py # flask程序的启动文件,通常在本地是通过运行 python manage.py runserver 来启动项目的
callable = app # 这个是程序内为flask.FLASK赋值的变量名,一般命名为app
processes = 4 # 处理器个数,进程个数
threads = 2 # 线程个数
stats = 127.0.0.1:9191 # 获取uwsgi统计信息的服务地址
pidfile = uwsgi.pid # 保存pid信息,方便停止服务和重启的时候用
daemonize=flaskweb.log # 后台运行时记录uwsgi的运行日志
lazy-apps = true # 当需要连接cassandra时,uwsgi无法启动服务,可以使用该选项设置
master-fifo = /opt/mt-search/web-service/mfifo # 使用chain-reloading 逐个work重启,服务不中断, 命令是 echo c > mfifo
touch-chain-reload = true
详细配置可参考下面这篇文章:
uWSGI的安装及配置详解 - 知乎 (zhihu.com)
第2步我们队uwsgi进行了配置,但是不能进行访问,所以我们需要让nginx和uwsgi进行通信,一般选用socket进行通信,还有几种情况这里就不一一介绍了,可以参考上面那篇文章。
进入/usr/local/nginx/conf文件夹,一般都在这个文件夹,找到nginx.conf文件
打开,编辑,找到http下面的server,默认端口为80,这里我们为了不混淆,所以我们自己创建一个server
server {
listen 8888;
server_name localhost;
location / {
include /usr/local/nginx/conf/uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
}
}
其中listen是访问uwsgi的端口,可以自行选择,include和uwsgi_pass都是固定参数,
include为运行uwsgi时自动产生的一个文件,默认路径为/usr/local/nginx/conf/uwsgi_params
uwsgi_pass 为之前设置的socket端口对应的端口,需要保持一致保存重启nginx
启动uwsgi
uwsgi --ini uwsgi.ini // 启动
uwsgi --reload uwsgi.pid // 重启
到此我们可以访问http://+服务器ip+:8888(端口号)来访问后端
解决方法
可以查看uwsgi的chdir参数,看是不是路径写错了,写路径时要用绝对路径,不要带/root。