6 部署nginx web服务器(转发uwsgi请求)

1 配置nginx转发

$ whereis nginx
$ cd /usr/local/nginx/conf
$ vi nginx.conf

  注释掉原来的html请求,增加uwsgi请求。

location / {
        # 包含uwsgi的请求参数
        include uwsgi_params;
        # 转交请求给uwsgi
        uwsgi_pass 172.17.0.11:8000;
}

2 修改uwsgi.ini配置

  打开Django工程目录下的Configurations目录中的uwsgi.ini

  如果直接访问uwsgi服务,则在uwsgi.ini中禁用http协议,改为socket协议。

  uwsgi.ini文件内容如下:

# 配置文件:这一行必须有,如果[uwsgi]直接顶行,ubuntu18.04找不到
[uwsgi]
#端口
# 服务器地址,不是外网地址,是服务器的ip地址
socket = 172.17.0.11:8000
# http = 172.17.0.11:8000
# Django工程目录
chdir = /publish/TongHeng
# wsgi的位置
module = TongHeng.wsgi
# 设置一个主进程
master = true
# 开放四个进程
processes = 4
# 每进程开放2个线程
threads = 2
vacuum = true
# 保存uwsgi.pid
pidfile = uwsgi.pid
log-maxsize = 500000000
logto = /tmp/uwsgi.log
buffer-size = 32768
enable-threads = true
reload-mercy = 8
harakiri = 60

3 重启nginx

$ /usr/local/nginx/sbin/nginx -s reload
$ ps -aux | grep nginx

4 启动uwsgi

$ cd /publish/TongHeng
$ uwsgi --ini config/uwsgi.ini
# 停止uwsgi服务
$ uwsgi --stop uwsgi.pid
#重启uwsgi服务
$ uwsgi --reload uwsgi.pid

  在浏览器中访问,此时,再访问8000端口已访问不到了,因为被nginx占用了。而nginx的端口号是80端口。是浏览器默认的端口。所以,直接访问IP+Url即可。

  到此,把nginx和uwsgi的转交完成了,浏览器可以远程访问服务器,但还是不能搜集到静态文件。

5 静态文件配置

5.1 在ubuntu服务器上创建一个目录,用于存储静态文件

$ mkdir /publish/static/

5.2 修改工程配置文件settings.py,设置静态文件路径

STATIC_ROOT='/publish/static'

5.3 搜集静态文件

  在服务器工程根目录下执行命令:

$ python manage.py collectstatic

5.4 修改nginx静态文件配置

$ cd /usr/local/nginx/conf
$ vi nginx.conf

  增加一个转发:

location /static {
        # 指定静态文件存放目录
        alias /publish/static/;
}

   至此,nginx配置文件就全部配置结束了。

  nignx.conf配置文件的全部内容(包括fastDFS配置,uwsgi配置)如下:

server {
        listen       80;
        server_name  49.235.75.157;
        location /group1/M00 {
            root /opt/fdfs/storage;
            ngx_fastdfs_module;
        }

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
        location / {
            # 包含uwsgi的请求参数
            include uwsgi_params;
            # 转交请求给uwsgi
            uwsgi_pass 172.17.0.11:8000;
            #uwsgi_param UWSGI_SCRIPT fastDFS.wsgi;
        }
        location /static {
            # 指定静态文件存放目录
            alias /publish/static/;
        }

6 重启nginx和uwsgi.ini

$ /usr/local/nginx/sbin/nginx -s reload
$ cd /publish/TongHeng
$ uwsgi --ini config/uwsgi.ini

  再从浏览器访问,可以接收到静态文件了。

猜你喜欢

转载自www.cnblogs.com/dorian/p/12356548.html