`

jenkins nginx uwsgi web.py

 
阅读更多

Jenkins安装起来很容易:

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -

sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'

sudo apt-get update

sudo apt-get install jenkins

 

默认为8080端口,进去jenkins控制台后,进入‘系统管理’,‘管理插件’,选中‘Github plugin’,点‘直接安装’。

至于新建Job 以及安全设置可以参考Jenkins的官方文档,很详细。

Github的job只要在‘源码管理’的Git   Repository URL填上想要编译的项目地址就可以了,焦点移出后会自动检测该Github项目是否可用。

由于Jenkins的job目录有点儿深:/var/lib/jenkins/jobs/your_project/workspace/src

python项目又不需要编译,所以可以在Jenkins的编译时运行的shell里把src复制到一个目录浅的地方,比如/srv/your_project/src, 或者做个软链接  ln -s /var/lib/jenkins/jobs/your_project/workspace/src /srv/your_project/src。

 

nginx的安装比较简单,apt-get就可以了。

配置:

vi /etc/nginx/sites-available/defaut

在默认的server后面添加新的server:

server {

        listen 80;

        server_name blog.xuli.cc;

        location / {

                        include uwsgi_params;

                        uwsgi_pass localhost:9999;

        }

}

vi /etc/nginx/nginx.conf 

由于添加了server,需要把server_names_hash_bucket_size 64; 打开。

 

另外,可以考虑把刚才Jenkins要通过8080端口访问的方式改成通过子域名jenkins.mydomain.com访问,需要添加proxy_pass:

server {

        listen 80;

        server_name jenkins.mydomain.com;

        error_log /var/log/nginx/jenkins.error_log info;

        location / {

                proxy_pass http://localhost:8080;

        }

}

 

 

安装uwsgi

由于需要同时编译uwsig为python模块,需要先安装python-dev :

apt-get install python-dev

 

我的VPS的系统为ubuntu 12.04,apt-get安装的的uswgi为1.0,不支持--wsgi-file参数,需要卸掉后获取stable版本:

http://uwsgi-docs.readthedocs.org/en/latest/Download.html

tar解压后,在解压后的文件中:

python uwsgiconfig.py --build

完事儿以后可以用 ./uwsgi -version查看是否成功。可以将bin目录下的uwsgi复制到/usr/bin目录下更方便。

 

web.py的安装也很简单,用easy_install或者pip都可以。

 

下面就是webpy的代码了:

import web
import os
from datetime import datetime


web.config.debug = False


urls = ('/', 'index')

render = web.template.render('templates/', globals())

class index:
    def GET(self):
        # return str(datetime.now()) + "<br/>" + os.path.abspath(os.path.curdir)
        return render.testwebpy(datetime.now())

app = web.application(urls, globals(), autoreload=False)


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

application = app.wsgifunc()

 最后一句是一定要有的,可以参考webpy网站教程。

 

到这一步,就可以运行uwsgi了:

进入webpy项目的src目录(/srv/your_project/src) :

uwsgi -s :9999 --wsgi-file app.py

在前端运行可以方便调试,调试没问题后,把它放到后台运行:

nohup uwsgi -s :9999 --wsgi-file app.py &

 

如果不在src目录下,会报错:No template named testwebpy

 

 

大概就是这些吧,可能有记忆不准确的地方,等下次有机会再配置一次。

 

Reference:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

http://uwsgi-docs.readthedocs.org/en/latest/Install.html

http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html

http://webpy.org/cookbook/mod_wsgi-nginx

分享到:
评论

相关推荐

    基于 Python 3.5 + Django 2.0 开发的运维管理系统

    python /opt/opms_website/opms/extra_apps/webssh/main.py & &gt;/dev/null ``` #### 用之前创建的用户登录后台 ```bash http://xxxx:10000/admin ``` #### 初始化 * 找到公司表,添加公司 * 然后部门表添加部门 * ...

    Django_mock.rar

    - **部署**:当开发完成且测试通过后,可以将项目部署到生产环境,如Apache、Nginx或Gunicorn + uWSGI,以便其他团队成员或系统能够使用这些Mock服务。 7. **持续集成/持续部署(CI/CD)** - **自动化测试**:将...

    Archery包.zip

    6. 启动服务:执行`python manage.py runserver`启动开发服务器,或者通过Nginx和Uwsgi配置部署在生产环境中。 三、Archery的主要功能 1. 代码仓库管理:Archery可以接入多个Git仓库,支持GitHub、GitLab等外部...

    python flask 微电影管理系统源码.zip

    使用Gunicorn或uWSGI等服务器软件,配合Nginx进行部署,以提高性能和稳定性。Flask-Mail用于发送邮件通知,Flask-SQLAlchemy简化数据库操作,Flask-Uploads处理文件上传等。 9. **测试与调试** 开发者会使用Flask...

    毕设&课程作业_基于 Python-Flask 的微服务框架.zip

    完成开发后,可以使用 Gunicorn 或 uWSGI 作为 WSGI 服务器,搭配 Nginx 做反向代理和负载均衡,将微服务部署到生产环境。同时,利用 Flask 测试框架编写单元测试和集成测试,确保代码质量。 7. **持续集成/持续...

    16、部署Django项目_opt1

    在生产环境中,通常使用Web服务器(如Nginx)来服务这些文件,而不是Django本身。 3. **数据库迁移**:确保你的数据库模型已经更新并执行了迁移。使用`python manage.py makemigrations`创建迁移文件,然后用`...

    django_deploy

    11. **部署准备**:生产环境通常使用Gunicorn或uWSGI作为应用服务器,Nginx作为反向代理服务器处理静态文件和SSL。安装并配置这些服务。 12. **配置wsgi**:创建一个wsgi.py文件,它是Django与应用服务器交互的接口...

    学习flask,开发商品后台管理系统.zip

    9. **部署与测试**:完成开发后,将项目部署到服务器,如使用Gunicorn或uWSGI作为应用服务器,Nginx做反向代理。同时,编写自动化测试用例,确保系统的稳定性和功能的正确性。 10. **持续集成与部署(CI/CD)**:...

    Django-start-to-production:这是一个练习的小django项目,开始生产LIVE

    - 使用`python manage.py collectstatic`命令将所有静态文件收集到一个地方,便于Web服务器服务。 - 编写并测试`wsgi.py`文件,它是Django应用与Web服务器交互的入口。 7. **Web服务器配置** - 选择合适的Web...

    我的网站

    6. 部署和运维:Python项目通常部署在WSGI服务器上,如Gunicorn或uWSGI,然后通过Nginx等反向代理服务器进行负载均衡和静态文件处理。运维方面,Docker可以用来封装应用环境,简化部署;Git用于版本控制,持续集成/...

    concrefuji_backend

    9. **部署**:Python应用可以部署在各种平台上,如Heroku、AWS、Google Cloud Platform或本地服务器,使用工具如Gunicorn、uWSGI和Nginx进行反向代理和负载均衡。 10. **持续集成/持续部署(CI/CD)**:项目可能使用...

    BlogWebsite:这是简单的博客网站

    - 开发完成后,项目通常会部署到像Heroku、AWS或Google Cloud Platform这样的云平台,或者使用Nginx、uWSGI等服务器进行本地或服务器部署。 8. **持续集成与持续部署(CI/CD)** - 使用Git进行版本控制,配合GitHub...

    django-deployment-example:我们的Django部署示例的仓库

    7. **设置WSGI服务器**:Django应用需要一个WSGI(Web Server Gateway Interface)服务器来处理HTTP请求,如Gunicorn或uWSGI。这些服务器可以与Nginx等反向代理服务器配合工作,提高性能和稳定性。 8. **安全配置**...

    django-project-test:测试Django部署

    8. **反向代理**:在生产环境中,Django应用通常通过Nginx或Apache等反向代理服务器对外提供服务,处理静态文件请求并分发动态请求到WSGI服务器。 9. **安全与性能**:确保SSL/TLS证书配置正确,实现HTTPS安全访问...

    计算机课程毕设:基于Django框架,采用MTV模式,基于用户画像的电影推荐系统的设计与实现.zip

    部署时,可能使用WSGI服务器如Gunicorn或uWSGI,配合Nginx进行反向代理和负载均衡。 9. 持续集成/持续部署(CI/CD):使用Git进行版本控制,结合Jenkins、Travis CI等工具实现自动化构建和部署,提高开发效率和软件...

    django-deplyment-example:我们的Django部署研究的仓库

    2. **Django项目结构**:理解Django项目的目录结构至关重要,包括manage.py、settings.py、urls.py和wsgi.py等核心文件的作用。 3. **数据库配置**:Django支持多种数据库,如SQLite、MySQL、PostgreSQL等。选择...

    django-projesini-yayina-alma:DjangouygulamasınıyayınaalmakiçinTürkçedökümantasyon

    - 了解Django项目的标准布局,包括`manage.py`、`settings.py`、`urls.py`和`wsgi.py`等关键文件的作用。 - 理解`apps`目录,以及如何创建和配置自定义应用程序。 2. **环境设置**: - 安装与管理虚拟环境...

    笨蛋后端

    7. **部署**:最后,项目会被部署到服务器上,常见的Python后端部署方式有Gunicorn或uWSGI配合Nginx。 通过学习和实践"mugenmoku-backend-master"中的代码,开发者可以深入理解Python后端开发的各个方面,包括如何...

    django-deployment-example:Django部署示例

    Django是Python编程语言中的一款强大、高效的Web框架,用于构建高性能的Web应用程序。本文将深入探讨如何将一个Django项目部署到生产环境,以实现"django-deployment-example"为例,我们将详细介绍从开发环境到生产...

    Blogging-site:使用Python的基本博客站点

    9. **部署**:完成开发后,博客站点需要部署到服务器上,可以使用Gunicorn或uWSGI作为WSGI服务器,Nginx作为反向代理和静态文件服务器,确保网站高效稳定运行。 10. **持续集成/持续部署(CI/CD)**:为了自动化测试...

Global site tag (gtag.js) - Google Analytics