当前位置: 首页 > news >正文

南京企业网站开发费用申请长沙网站开发招聘

南京企业网站开发费用申请,长沙网站开发招聘,水果代理平台,公司网站域名怎么续费个人博客#xff1a;https://xzajyjs.cn 前言 之前自己写的flask使用gunicorn上线生产环境没有什么问题#xff0c;但是最近搭建了一个现成的flask项目#xff0c;当使用python直接运行时不会有问题#xff0c;而使用gunicorn时则会出现一些问题。 部署过程 运行测试 这…个人博客https://xzajyjs.cn 前言 之前自己写的flask使用gunicorn上线生产环境没有什么问题但是最近搭建了一个现成的flask项目当使用python直接运行时不会有问题而使用gunicorn时则会出现一些问题。 部署过程 运行测试 这里使用pyenv创建了一个虚拟环境并安装好依赖 pyenv virtualenv 3.9.6 freegpt pyenv activate freegpt pip install -r requirements.txt下面是入口函数run.py from server.app import app from server.website import Website from server.backend import Backend_Api from json import loadif __name__ __main__:# Load configuration from config.jsonconfig load(open(config.json, r))site_config config[site_config]# Set up the website routessite Website(app)for route in site.routes:app.add_url_rule(route,view_funcsite.routes[route][function],methodssite.routes[route][methods],)# Set up the backend API routesbackend_api Backend_Api(app, config)for route in backend_api.routes:app.add_url_rule(route,view_funcbackend_api.routes[route][function],methodsbackend_api.routes[route][methods],)# Run the Flask serverprint(fRunning on port {site_config[port]})app.run(**site_config)print(fClosing port {site_config[port]})其中site_config.json文件如下 {site_config: {host: 127.0.0.1,port: 1234,debug: false},use_auto_proxy: false }意思是运行flask服务于127.0.0.1:1234只运行本地访问后期我们需要搭建Nginx进行反向代理。 我们先使用python直接运行测试一下看能否跑起来以及能否正常访问。 python run.py我们在服务器使用curl进行请求 curl 127.0.0.1:1234数据返回正常说明可以正常访问。 gunicorn搭建 Gunicorn是一个WSGI HTTP Server是针对Python的、在Unix系统上运行的、用来解析HTTP请求的网关服务。 它的特点是能和大多数的Python web框架兼容使用简单轻量级的资源消耗高性能。 首先在当前虚拟环境下安装gunicorn pip install gunicorn然后我们使用gunicorn将flask项目跑起来并且仅对本机开放端口4444 gunicorn run:app -b 127.0.0.1:4444 --access-logfile access.log --error-logfile error.log 使用ps命令可以看到当前已经成功在后台运行起来了 ps aux | grep gunicorn踩坑 但是此时当我们再次使用curl访问127.0.0.1:4444时 出现了404的错误。 我们查看gunicorn生成的日志文件 # access.log 127.0.0.1 - - [13/Jul/2023:12:51:11 -0400] GET / HTTP/1.1 404 207 - curl/7.76.1可以看到成功的请求到了我们的wsgi server但是返回了404。在外网论坛上摸索了一番问题出在了run.py上。 run.py文件中的所有代码都是写在if __name__ __main__:之下的这在python语法中代表着主函数入口。 当使用Python直接运行脚本时例如python run.pyif __name__ __main__条件下的代码块会被执行包括app.run()。这将启动Flask服务器并让应用程序开始监听指定的主机和端口。当使用Gunicorn运行应用程序时例如gunicorn --bind 127.0.0.1:4444 run:appif __name__ __main__条件下的代码块不会被执行。因为Gunicorn实际上是将你的代码作为一个模块导入而不是直接运行该代码。在这种情况下Gunicorn会在内部处理Flask服务器的启动逻辑并监听指定的主机和端口。也就因此自己在app.run(**kwargs)中设定的host、port、debug等参数也就失效了。 因此无论是使用Python直接运行还是使用Gunicorn运行应用程序app.run()只会在Python直接运行脚本时执行。而在使用Gunicorn运行时if __name__ __main__条件下的代码块将被跳过包括app.run()。这是因为Gunicorn已经处理了服务器的启动逻辑。 因此if __name__ __main__条件的目的是为了确保在直接运行脚本时才执行特定的代码块而在被导入为模块时跳过这些代码块。这样可以确保在使用Gunicorn启动应用程序时不会重复启动Flask服务器并避免出现意外行为。 解决方案 既然已经知道了错误的逻辑那么解决方法就很简单了只要把除了app.run()的其他代码全部移出if __name__ __main__即可。修改后的run.py如下 from server.app import app from server.website import Website from server.backend import Backend_Api from json import load# Load configuration from config.json config load(open(config.json, r)) site_config config[site_config] # Set up the website routes site Website(app) for route in site.routes:app.add_url_rule(route,view_funcsite.routes[route][function],methodssite.routes[route][methods],)# Set up the backend API routes backend_api Backend_Api(app, config) for route in backend_api.routes:app.add_url_rule(route,view_funcbackend_api.routes[route][function],methodsbackend_api.routes[route][methods],)if __name__ __main__:# Run the Flask serverprint(fRunning on port {site_config[port]})app.run(**site_config)print(fClosing port {site_config[port]})这样就可以保证python和gunicorn方式均可正常运行。 先kill掉之前正在运行的gunicorn并重新启动 kill -9 1275864 1275865 gunicorn run:app -b 127.0.0.1:4444 --access-logfile access.log --error-logfile error.log 可以看到现在请求127.0.0.1:4444已经正确响应了 Nginx反向代理 目前搭建的服务只能服务器自己访问到下面我们通过nginx反向代理将其映射到对外的80端口 安装配置nginx就不多说了下面讲讲配置文件的写法。其实很简单 vim /etc/nginx/nginx.conf# nginx.conf ... server {listen 80;server_name xxxxxxxx; # 此处填绑定的域名location / {proxy_pass http://localhost:4444;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;}} ...然后运行nginx即可 nginx -t nginx此时使用本机访问域名的80端口已可以正常访问了。
http://www.sadfv.cn/news/102987/

相关文章:

  • 中山 家居 骏域网站建设专家前端兼职一个静态页面报价
  • 如何创做网站ui设计自学学的出来吗
  • 营销型网站建设指导原则济宁市任城区建设局网站
  • 厦门市城市建设档案馆网站网站建设的问题
  • 传到网站根目录在线修图编辑器
  • 做爰网站視屏网络营销公司加盟
  • 网站建设推广平台有哪些建设工程 质量 协会网站
  • 要建立网站无锡易时代网站建设有限公司怎么样
  • 东莞网站优化方式广州制作外贸网站公司
  • joomla 企业网站模板wordpress 2013
  • 做一手房做那个网站好康保网站建设
  • 莆田网站建设创意网站开发代理
  • 太仓市住房城乡建设局网站沈阳鹊起网站建设
  • 做金融行业网站平江高端网站建设
  • 禹城有做网站网站模版带后台
  • 河北省建设中心网站怎么设计一个网站
  • 浙江省建设投资集团有限公司网站上海做兼职网站有吗
  • 建设网站的原则口碑营销中容易出现哪些问题
  • 建网站logo怎么做免费网站模板库
  • 中山手机网站制作哪家好成都旅游网
  • 网站使用支付接口如何收费网站如何做谷歌推广
  • 邢台哪儿做wap网站好郑州男科医院哪家权威
  • 个人可以做几个网站酷炫网站欣赏
  • 资产管理公司网站建设方案中山市有什么网站推广
  • 七星彩网投网站建设建设环境工程技术中心网站
  • 赤峰做企业网站公司搭建网站实时访问地图
  • iis 新建网站没有文件夹权限星乐seo网站关键词排名优化
  • 防止做网站的人修改数值网页源代码拿到后怎么使用
  • 郑州hi宝贝网站建设公司有哪些网站免费做推广
  • 上海网站开发建设价格网站建设淘宝详情页