Centos6下利用nginx+uwsgi+flash发布网站
基本环境:centos6.8,python3.5.3
基础配置:
yum install nginx #安装不上,手动下载包,让后解压在安装
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
如果不能执行上面命令,手动下载这个rpm包,然后解压
验证环境
Service nginx start
然后访问http://127.0.0.1
pip3 install uwsgi
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi #软连接,能够启用uwsgi命令
验证环境
# test.py
def application(env, start_response):
return [b"Hello World"] # python3
uwsgi --http :8000 --wsgi-file test.py #测试用程序,在浏览器中访问8000端口
ps -ef|grep uwsgi #查看进程
Killall -9 uwsgi #杀死进程
方案一:利用uwsgi发布flash的程序
思路:先配置uwsgi参数,然后命令行启用环境,就可以http访问了。配置文件如下,名称任意,位置任意。我放在flask工程目录下了,uwsgi.ini。
注意坑:py程序引用了很多库,默认没有安装,记得安装。否则会报错,服务器内部错误,查看日志能看到缺少哪些包
[uwsgi]
# manage.py文件所在目录
chdir = /root/flask
callable = app #程序里面的应用名称
wsgi-file= server5.py # flask文件名
processes = 2 # 进程数
http = 0.0.0.0:5001 # 使用5001端口
daemonize = /root/flask/flask.log # 日志输出目录
pidfile = project-master.pid
利用命令启用环境
uwsgi uwsig.ini
让后在ie中访问127.0.0.1:5001既可以了
这里的问题,要修改了py程序,必须重新启用uwsgi,用killall -9 uwsgi杀死进程,然后在启动
方案二:利用nginx+uwsgi发布flask
参考:https://www.cnblogs.com/vijayfly/p/6290773.html
思路:修改uwsgi的ini配置文件,把http换为socket就可以了。Nginx的配置文件在/etc/nginx/config/config.d/下面。利用nginx监听的9000端口http协议访问,让后利用socket协议,转发到uwsgi监听的8001端口上,让后通信就可以了。
两个配置文件
uwsig.ini文件
[uwsgi]
# manage.py文件所在目录
chdir = /root/flask
callable = app
# flask文件名
wsgi-file= server5.py
# 进程数
processes = 2
# 使用5001端口
socket = 127.0.0.1:5001
# 日志输出目录
daemonize = /root/flask/flask.log
pidfile = project-master.pid
stats = 127.0.0.1:9191
default.conf文件
server {
listen 9000;
server_name localhost;
charset utf-8;
access_log /root/flask/access.log;
error_log /root/flask/error.log;
client_max_body_size 100M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5001;
uwsgi_param UWSGI_PYHOME /usr/bin/python3;
uwsgi_param UWSGI_CHDIR /root/flask;
uwsgi_param UWSGI_SCRIPT server5:app;
}
}
启动命令:
uwsgi uwsig.ini
Service nginx start
Service nginx retart #stop
Killall -9 uwsig
ps -ef|grep nginx
ps -ef|grep uwsig
netstat -tunlp|grep nginx
netstat -tunlp|grep uwsig
nginx的权限问题(13: Permission denied)解决办法
补充问题:有时启动nginx,运行后有问题,查看log日志
四、SELinux设置为开启状态(enabled)的原因。
4.1、查看当前selinux的状态。
1. /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
1. vi /etc/selinux/config
2.
3. #SELINUX=enforcing
4. SELINUX=disabled
4.3、重启生效。reboot。
1. reboot