2019-05-11

2019-05-12  本文已影响0人  baixuetang11

nginx使用验证,分别在windows,ubuntu下运行

1、windows中安装虚拟环境,建立虚拟环境,确保各模块相互兼容

会让使用虚拟环境更加方便

pip install virtualenv

pip install virtualenvwrapper  # 这是对virtualenv的封装版本,一定要在virtualenv后安装

sudo pip3 install virtualenvwrapper

sudo pip2 install virtualenvwrapper

如果国外的源太慢了,可以换成国内的镜像,只需要加上地址就行

sudo pip2 install -i https://pypi.douban.com/simple virtualenvwrapper

mkvirtualenv -p python2 py2

rmvirtualenv py2#删除虚拟环境

activate # 启动虚拟环境

deactivate # 退出虚拟环境

然后在虚拟环境中安装django

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

直接把django版本降一下pip3 install Django==1.11.4

windows下载nginx (http://nginx.org/en/download.html) (https://blog.csdn.net/kingscoming/article/details/79042874)

解压后保存在D:\nginx-1.14.2

步骤如下https://blog.csdn.net/kingscoming/article/details/79042874

1.下载Nginx文件包解压免安装

http://nginx.org/

(在ubuntu中直接使用sudo apt-get install nginx)

2.Nginx配置

找到 conf 目录里的 nginx.conf 文件,配置Nginx

2.1.基本配置如下:

我在原来配置文件中增加了如下

upstream djangos {

server 127.0.0.1:8001;

server 127.0.0.1:8002;

}

2.2.server配置

然后在server增加

location / {

proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_set_header myhead 'myhead';

proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_pass http://djangos;

}

3.启动Nginx

注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程

cmd 进入Nginx解压目录 执行以下命令

start nginx : 启动nginx服务

nginx -s reload  :修改配置后重新加载生效

nginx -s reopen  :重新打开日志文件

nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

启动后如何检查是否启动成功呢? 输入命令 tasklist /fi "imagename eq nginx.exe"  看到以下信息说明启动成功了

一切就绪,访问一下server 里配置的 server_name 是不是被重定向到 upstream配置的服务器上了,是不是很简单!

4.nginx常用命令:

验证配置是否正确: nginx -t

查看Nginx的版本号:nginx -V

启动Nginx:start nginx

快速停止或关闭Nginx:nginx -s stop

正常停止或关闭Nginx:nginx -s quit

配置文件修改重装载命令:nginx -s reload

开启nginx后,然后在开jdango:python manage.py runserver 0.0.0.0:8001  python manage.py runserver 0.0.0.0:8002

然后在网页中http://192.168.56.1/books/show/ 直接访问成功,而且不需要带地址,因为它会自动由nginx转到8001与8002中,到此成功

5.常见错误

如果启动失败 可以看下logs目录下 error.log 文件里的错误信息。

我在第一次安装的时遇到两个错误,也是最容易碰到的问题,在这里列出来方便大家碰到相同的问题时快速解决。

1.端口占用问题

我的配置文件里服务侦听的是 80 端口,由于机器上部署了IIS,80端口被默认站点占用,把站点关闭就可以了,这个问题在错误日志里记录是这样的。

2015/01/15 10:44:12 [emerg] 8800#5988: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)我解决方法,把IIS信息服务关闭,然后重启即可

碰到类似的错误,请确认端口是否被占用或被防火墙屏蔽

2019-05-12按照如上方法对django_test01在python3环境下运行成功

遇到nginx每次启动出现错误,需要将nginx重装:

2019-05-12删除nginx(ubuntu) https://chubuntu.com/questions/51656/nginx-cant-purge-on-ubuntu-16-04.html

编辑:

由于问题无法以这种方式解决且问题是由 nginx-core 引起的,您可以尝试通过执行以下操作手动修复问题:

sudo apt -f remove nginx-core

为此: sudo apt -f remove nginx-full

然后从 sudo apt autoremove --purge 。

开始,完成上述步骤   

然后重新安装nginx

sudo apt-get install nginx

sudo service nginx start

service nginx status

在windows中cmd把文件上传到ubuntu中

D:>pscp -P 22 D:\tangpython\webapp.py ubuntu@139.199.66.32:/home/ubuntu

D:>pscp -P 22 D:\tangpython\wsgi_server.py ubuntu@139.199.66.32:/home/ubuntu

然后在ubuntu中使用python wsgi_server.py,然后浏览器中139.199.66.32:8080即可访问成功,返回hello world(完全与windows一致)

上一篇下一篇

猜你喜欢

热点阅读