uWSGI + Nginx的配置

系统:centOS7

过程比较坑,分为几个部分吧:

  1. python3的安装

  2. uwsgi的安装

  3. nginx和uwsgi的配置

  4. selinux的配置

一. python3的安装

centOS7默认安装的是python2,直到centOS8,才换成了python3。但是现在大环境都是在用python3,所以我们第一步是要安装python3.
首先说,不要卸载python2了,因为2和3可以并存,卸载2容易出事儿,系统有些东西也是跟2关联的,不是强迫症建议就不要卸载2,直接安装3就行,不影响。

安装相关编译工具

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y

下载并解压安装包

cd 你自己的目录
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvJf  Python-3.7.0.tar.xz

编译及安装

mkdir /usr/local/python3 #创建编译安装目录
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make install

创建软连接

ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3

验证一下

python3 -v

二. uWSGI的安装

坑的地方来了。
一般教程都是让你直接pip安装:

pip install uwsgi

但是pip是python2的,你这样安装,uWSGI使用的是python2,不是3

或者让你下载安装:

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make

这样也不行,因为make的时候,还是使用的python2.

正确的方式是这样:

pip3 install uwsgi

或者

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
python3 uwsgiconfig.py --build
python3 setup.py install

看不懂的看这里:python3安装uwsgi

三. uWSGI的配置

uWSGI是个服务器,你可以直接作为你的web服务器,但是更常用的是使用nginx+uWSGI
简单点:
touch一个uwsgi.ini文件,文件名你随意
然后写入文件:

[uwsgi]
socket = 127.0.0.1:9090

这是最简单的配置,这里socket是用于跟nginx连接的,这个ini配置还有很多,不再赘述,你调通了自己慢慢研究

然后启动uwsgi

uwsgi --ini uwsgi.ini

启动了你依旧访问不了,因为我们还没有配置nginx

四. nginx的配置

nginx直接说配置怎么搞,其他简单的你们可以自己google

http{
	server{
		listen 8080;
		location / {
			include uwsgi_params;
    		uwsgi_pass 127.0.0.1:9090;
		}
    }
}

这里注意,uwsgi_pass的地址一定要跟上面的uwsgi.ini的socket一致!

配置到这里,如果你是新的centOS系统,基本上你在远端访问:http://服务器IP:8080,就会出现502错误了,哈哈哈哈

原因是centOS7预装了selinux,这个东西限制了http的访问
最粗暴的方式,直接修改selinux的配置,disabled它
如果disabled,网上教程一大堆,但是大部分都没有说清楚一件事:
你要重启centOS!对的,也很简单,如果你是root用户,直接reboot(注意看看有没有别人在跑的业务)

重启后,这时候你再访问:http://服务器IP:8080
出现的就是:Internal Server Error
哈哈,正常,因为你没有配置任何python的application,去配置一下就好了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值