-
安装编译python的信赖包
yum install -y gcc make libffi-devel zlib-devel bzip2-devel openssl-devel xz-libs wget
-
编译安装python的最新版本
-
从官网下载最新的源代码并解压缩
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz tar -xvf Python-3.7.3.tar.xz
-
编译安装
cd Python-3.7.3 #安装到/usr/local下与自带的python区分开 ./configure --prefix=/usr/local make && make install
-
设置PATH,更改默认python
export PATH="/usr/local/bin:$PATH"
-
为了统一管理,在python的虚拟环境下安装使用uwsgi,不使用全局的uwsgi
mkdir -p /var/www/flask_api
cd /var/www/flask_api
python -m venv venv
source venv/bin/activate
pip install flask uwsgi
接下来可以用uWSGI来跑Flask应用
uwsgi --http 0.0.0.0:8080 --home env --wsgi-file flask_uwsgi.py --callable app --master
测试上面的程序是否成功
curl http://127.0.0.1:8080
-
安装信赖包
yum install pcre-devel gcc make zlib-devel lua-devel perl
-
下载最新版本的openssl和nginx源代码
wget https://www.openssl.org/source/openssl-1.1.1b.tar.gz wget https://nginx.org/download/nginx-1.14.2.tar.gz
-
编译安装
tar -xvf openssl-1.1.1b.tar.gz tar -xvf nginx-1.14.2.tar.gz cd nginx-1.14.2 ./configure --prefix=/usr/local/nginx --with-stream --with-stream_ssl_preread_module --with-http_v2_module --with-http_ssl_module --with-pcre --with-openssl=../openssl-1.1.1b --with-openssl-opt='enable-tls1_3' make -j 4 make install
-
添加systemctl配置, 添加
/usr/lib/systemd/system/nginx.service
,并将下面内容写入[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
-
修改nginx配置, 先使用
useradd nginx
添加nginx用户, 再将下面内容覆盖/usr/local/nginx/conf/nginx.conf, 最后在/usr/local/nginx/conf下面添加vhosts文件夹,最后所有域名的配置都可以放到这个目录下面。user nginx; worker_processes 8; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $request_time [$time_local] "$request" ' '$status $body_bytes_sent $bytes_sent $content_length $request_length "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; include vhosts/*.conf; }
- 发一个 Fedora23 上自动搭建、配置 Flask 的 shell 脚本
- Installing Python 2.7.8 on CentOS 6.5
- mking/flask-uwsgi
- How To Deploy Flask Web Applications Using uWSGI Behind Nginx on CentOS 6.4
- 使用uwsgi和Nginx部署flask应用
- 阿里云部署 Flask + WSGI + Nginx 详解
- audit2why
- SELinux policy for nginx and GitLab unix socket in Fedora 19
- nginx install官网