docker容器内uwsgi及nginx服务部署

docker容器:9000:9100
nginx:listen 9100
uwsgi:socket 9200
调用,在postman中,虚拟机IP:9000/hello
即容器(9000-9100)–>nginx(9100)–>uwsgi(9200)

uwsgi部署流程

1、利用pip install uwsgi下载python对应的库
2、新建flask的python文件,例如app_run.py,如下

from flask import Flask
app = Flask(__name__)

@app.route("/hello")
def hello():
    print("hello world ")
    return "<h1 style='color:blue'>Hello There hahahaha!!!!</h1>"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

3、新建调用app_run.py的python文件,例如run.py,如下

from app_run import app

if __name__ == "__main__":
    app.run()

4、配置 uwsgi 的 ini 文件,例如 uwsgi.ini,如下。同时在同一目录下新建空的log文件与 pidfile 文件,例如 uwsgi.pidfile、uwsgi.log

[uwsgi]

wsgi-file=run.py # python文件
chdir = /opt/my/ # python文件的地址
socket =127.0.0.1:9200 # uwsgi的端口  #############
callable=app
processes=4
threads=4
stats=127.0.0.1:9201
daemonize=uwsgi.log # log文件名称
pidfile=uwsgi.pidfile

5、建立uwsgi软连接,并启动uwsgi
在命令行直接输入uwsgi,会显示错误,可以建立uwsgi的软连接,如下

# 为uwsgi创建软连接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

在ini文件所在目录下,运行

uwsgi --ini uwsgi.ini

此时uwsgi已经启动起来,输入一下命令看一下

ps -ef|grep uwsgi

若显示以下内容,则uwsgi启动成功

root        47     1  4 09:38 ?        00:00:00 uwsgi --ini uwsgi.ini
root        48    47  0 09:38 ?        00:00:00 uwsgi --ini uwsgi.ini
root        49    47  0 09:38 ?        00:00:00 uwsgi --ini uwsgi.ini
root        53    47  0 09:38 ?        00:00:00 uwsgi --ini uwsgi.ini
root        54    47  0 09:38 ?        00:00:00 uwsgi --ini uwsgi.ini
root        65    18  0 09:38 pts/1    00:00:00 grep --color=auto uwsgi

nginx安装流程

1、安装依赖包

//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2、下载并解压安装包,nginx安装在/usr/local/目录下

//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.g

3、安装nginx

//进入nginx目录
cd /usr/local/nginx
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install

4、查看nginx是否可正常打开
在/usr/local/nginx/sbin/目录下,运行./nginx -t 或者nginx -t,若出现以下,则成功

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

5、建立软连接,如uwsgi一样,此时直接运行nginx即启动。可利用ps -ef|grep nginx查看

# 为nginx创建软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

uwsgi与nginx连接

1、配置nginx的conf文件

# 打开配置文件,一定是这个!!!!!!!!!!
vi /usr/local/nginx/conf/nginx.conf

conf内主要内容如下,不要忘了分号!!!其中listen为docker容器的端口,可通过docker ps查看。uwsgi_pass为对应的uwsgi的端口

server {
        listen       9100; # docker容器的端口 ##############
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            include     uwsgi_params;
            uwsgi_pass 127.0.0.1:9200; # uwsgi的端口 ########
        }
############## 或者  #####################
upstream cw {
        server 127.0.0.1:9200 weight=1;
    }

    server {
        listen       9100;
        server_name  localhost;

        location / {
            include     uwsgi_params;
            uwsgi_pass  cw;
        }



2、启用nginx与uwsgi

uwsgi: uwsgi -–ini test_1.ini
nginx

利用ps -ef|grep 命令可以查看两者都已启动
4、在宿主机(本地电脑)上访问服务,在浏览器中
虚拟机IP:9000/hello

参考资料
LINUX安装nginx详细步骤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章