Python 后端开发之nginx代理小白文全攻略

2 篇文章 0 订阅
1 篇文章 0 订阅

nginx代理与自签证书以及python.bottle的那些坑

第一步先介绍下nginx 代理,自签证书ssl,python.bottle

nginx代理,顾名思义,是一个中间桥梁,为我们去接通两者(server,client)的中间商,为什么需要代理就要提到http和https 的关系了,不是本文重点,有兴趣去看这里自签名证书ssl吧,这是目前很多浏览器不认可的证书,因为相对官方签名不够安全,因为自签名证书相对于其他证书的时间太长,动不动就是10年,20年,有人直接99年,给黑客很多攻击时间和破解加密机会。但是官方证书要钱,没钱就只能自签。下面第三板块会讲到自签之路遇到的坑

python.bottle

在windows 的python 环境下安装命令

pip install bottle

在linux Python环境安装命令

pip3 install bottle 
#或者直接用whl 包或者tar包安装门就不用改源了

为了后面说的清楚点,这里做一个简单的bottle服务器

import platform
from bottle import template, Bottle, request, response
import threading, time
root = Bottle()
@root.route('/hello/')
def index():
    return template('<b>Hello {{name}}</b>!', name="world")
 
ip="192.168.0.110"    
root.run(host=ip, port=8083)

10行代码写成的服务器,是不是很炫酷,虽然简单,但是确实是服务器,啊哈哈
功能也很简单,效果如下
在这里插入图片描述
但是这是在局域网中打开,只能是局域网中的人(基本就是你自己)能玩,想要像淘宝呀,京东呀,别想了,你想太多了
言归正传,想要在外网中访问本地的东西,正常协议是不可能的,不然岂不是外网的黑客可以随便入侵本地电脑了,当然也不是没有办法,不过与本文的主旨无关了

这里就要说到用nginx 代理实现在https 浏览器请求的情况下,仍然用http 的地址和端口接收到请求的信息

nginx 代理

1.安装之前说一句很重要的话,做好软件的备份工作
2.话不多说,上代码

sudo apt-get  install nginx

最简单的安装方法,会默认安装到根目录的某个位置下,自己用find 去找吧,哈哈哈
如果提示网络不好,安装失败,那么就需要自己去下载tar包安装了,资源
在这里插入图片描述
3.选择框出来的几个包,比较新的下载一个,然后双击,呸,然后解压出来

tar -xf nginx-1.14.2.tar.gz

4.然后就是进入里面搞,事情

cd nginx-1.14.2

5.为了方便手残党,请跟着我的步骤来,下一步是用configure 命令来编译安装了

./configure & make &make install

6.等待安装完毕之后,就是测试看看有啥问题了,我是安装在/usr/local,自己根据自己的地址来

/usr/local/nginx/sbin/nginx -V

在这里插入图片描述
7.如果出来的结果不是这样的,恭喜你遇到问题了接着往下看吧
肯定会遇到问题的,因为我故意没有在命令行里加额外安装http_ssl_module的命令,一般nginx不会自动安装的,需要自己动手

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module & make & cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak & cp ./objs/nginx /usr/local/nginx/sbin/

以上命令专为和我一样的懒人准备的,总共是四个执行的操作,可以自己拆分分别执行,&分割的,第一句是重新编译nginx带http_ssl_module的,第二句是make,这很好理解,第三句是备份nginx的程序,防止翻车后无救,第四句就是覆盖了已经备份过的nginx
————————————————————————————————————————————————————
然后在执行前面第6步,发现和我的一样了

然后接下来就是nginx配置https了

配置下代理文件 进入 nginx/conf/,打开nginx.conf文件,然后改配置代理

server {

        listen	80;
		server_name  域名;
	    rewrite ^(.*) https://$server_name$1 permanent; #http 跳转 https
    }
server {
	listen 8080   ssl;
	server_name 域名;
	ssl_certificate  /usr/lib/ssl/server.crt;
	ssl_certificate_key  /usr/lib/ssl/server.key;
	ssl_session_cache    shared:SSL:1m;
	ssl_session_timeout  5m;
	
	location / {
	proxy_pass: http://127.0.0.1:8083 #或者 http://192.168.0.110:8083,不过不建议后者,除非你的地址是写死的,不用后者你就接收不到
}
}

上面的文件配好之后,就是启动nginx ,然后在浏览器看效果了,不过启动前先试试nginx配置对不对

/usr/local/nginx/sbin/nginx -t

成功了,可以继续下一步
如果不对,是下面这样的
在这里插入图片描述
缺少权限,命令前加sudo
如果是其他错误,应该就是配置文件出错或者证书配置出错了,没错就是这么生硬,接下来说说SSL证书的配置方法

ssl证书配置

首先,什么是ssl证书,为什么要用ssl 证书,我们的配置和ssl证书有什么关系,这些问题我都不会告诉你,自己百度
1.安装,一般的linux系统在装系统的时候就默认安装了,在/usr/lib/ssl
如果不幸没有,也表急,一句话命令安装

sudo apt-get install openssl

建议安装到系统的默认路径/usr/lib/ssl,先cd到位置再安装
安装成功之后,输入以下代码

sudo openssl genrsa -des3 -out server.key 1024 & sudo  openssl req -new -key server.key -out server.csr -config openssl.cnf

生成server.key server.csr这两个文件在当前路径下

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

自己给自己签名

openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

生成自签名证书
好了,证书有了,nginx也有了,现在可以开始访问了
效果如下:
在这里插入图片描述

在这里插入图片描述
’’’
如果遇到了其他问题或者我的方法还有什么漏洞,欢迎指出,在 nginx bottle的安装或者编译的时候遇到问题,可以把问题发送到邮箱fastbiubiu@163.com,我会不定期查看,然后不定期地更新问题的解决方案到博客里。凭运气解决问题
‘’'

链接几篇不错的文章
python从爬虫开始(一)——Python3的安装与环境配置以及网络爬虫的手把手教学

Nginx 配置详解

好了,剩下自己百度吧,告辞!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要进行Nginx后端开发,首先需要了解以下几个方面: 1. Linux系统基础知识:Nginx是一款基于Linux系统的Web服务器,因此对Linux系统的基本操作和命令行的使用应该熟悉。 2. Nginx架构和工作原理:需要了解Nginx的架构和工作原理,包括它的事件驱动、多进程或多线程的工作模式,以及如何处理请求和响应。 3. HTTP协议:Nginx作为Web服务器,对HTTP协议的了解是必须的,包括HTTP请求和响应的格式、常见的HTTP方法和状态码。此外,对HTTPS协议和TLS/SSL加密也需要有一定的了解。 4. Web开发技术:了解常用的Web开发技术,如HTML、CSS、JavaScript,以及常见的服务器开发语言(如PHP、Python、Java等)。这样才能更好地理解前端和后端的交互以及开发过程。 5. Nginx模块开发Nginx的核心是模块化的,可以通过开发自定义模块来扩展Nginx的功能。因此,需要了解如何编写Nginx模块,包括模块的结构、配置指令的解析、请求的处理等。 6. 负载均衡和反向代理Nginx广泛用于负载均衡和反向代理,需要了解如何配置Nginx实现负载均衡以及通过反向代理实现请求转发。同时,熟悉常见的负载均衡算法和代理配置策略。 7. 性能优化和调优:了解Nginx的性能优化和调优,包括如何进行并发处理、缓存配置、连接池配置等,以提高服务器性能和稳定性。 总之,Nginx后端开发需要对Linux系统、Nginx架构、HTTP协议、Web开发技术、Nginx模块开发、负载均衡和反向代理、性能优化和调优等方面有较深入的了解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值