Nginx反向代理实现HTTPS网站

news/2024/5/20 3:31:12/文章来源:https://blog.csdn.net/weixin_30702413/article/details/99981600

1、环境设置

这次是在windows环境下实现的,linux环境下步骤差不多

openssl的windows版本

下载地址: http://slproweb.com/products/Win32OpenSSL.html 

Nginx的windows版本

下载地址: http://nginx.org/en/download.html 

网站使用python的tornado框架

2、openssl创建证书

 1 1.创建私钥
 2 
 3   openssl genrsa -des3 -out lifes.key 1024 
 4    
 5   输入密码后,再次重复输入确认密码。记住此密码,后面会用到。 
 6       
 7 
 8 2. 创建csr证书
 9 
10     openssl req -new -key lifes.key -out lifes.csr 
11 
12     bin文件夹内出现两个文件:lifes.key、 lifes.csr
13 
14 3. 去除密码 
15 
16     在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码
17 
18     复制lifes.key并重命名为lifes.key.org
19 
20     可以使用此命令行,也可以使用鼠标操作 copy lifes.key lifes.key.org
21 
22     去除口令,在命令行中执行此命令: openssl rsa -in lifes.key.org -out lifes.key
23 4. 生成crt证书
24 
25     openssl x509 -req -days 365 -in lifes.csr -signkey lifes.key -out lifes.crt
证书创建步骤

3、搭建webapp

 1 #-*-coding:utf-8-*-
 2 
 3 import os.path
 4 
 5 import tornado.httpserver
 6 import tornado.ioloop
 7 import tornado.options
 8 import tornado.web
 9 
10 from tornado.options import define, options
11 define("port", default=8000, help="run on the given port", type=int)
12 
13 class IndexHandler(tornado.web.RequestHandler):
14     def get(self):
15         ip = self.request.remote_ip
16         print(ip)
17         self.render("test.html")
18 
19 class UserHandler(tornado.web.RequestHandler):
20     def post(self):
21         user_name = self.get_argument("username")
22         user_email = self.get_argument("email")
23         user_website = self.get_argument("website")
24         user_language = self.get_argument("language")
25         self.render("user.html",username=user_name,email=user_email,website=user_website,language=user_language)
26 
27 handlers = [
28     (r"/", IndexHandler),
29     (r"/user", UserHandler)
30 ]
31 
32 template_path = os.path.join(os.path.dirname(__file__),"template")
33 
34 if __name__ == "__main__":
35     tornado.options.parse_command_line()
36     app = tornado.web.Application(handlers, template_path)
37     http_server = tornado.httpserver.HTTPServer(app)
38     http_server.listen(options.port)
39     tornado.ioloop.IOLoop.instance().start()
tornado搭建app

4、配置nginx.conf

  1 #user  nobody;
  2 worker_processes  1;
  3 
  4 #error_log  logs/error.log;
  5 #error_log  logs/error.log  notice;
  6 #error_log  logs/error.log  info;
  7 
  8 #pid        logs/nginx.pid;
  9 
 10 
 11 events {
 12     worker_connections  1024;
 13 }
 14 
 15 
 16 http {
 17     include       mime.types;
 18     default_type  application/octet-stream;
 19 
 20     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 21     #                  '$status $body_bytes_sent "$http_referer" '
 22     #                  '"$http_user_agent" "$http_x_forwarded_for"';
 23 
 24     #access_log  logs/access.log  main;
 25 
 26     sendfile        on;
 27     #tcp_nopush     on;
 28 
 29     #keepalive_timeout  0;
 30     keepalive_timeout  65;
 31 
 32     #gzip  on;
 33 
 34     server {
 35         listen       80;
 36         server_name  localhost;
 37 
 38         #charset koi8-r;
 39 
 40         #access_log  logs/host.access.log  main;
 41         
 42 
 43         location / {
 44             root   html;
 45             index  index.html index.htm;
 46         }
 47 
 48         #error_page  404              /404.html;
 49 
 50         # redirect server error pages to the static page /50x.html
 51         #
 52         error_page   500 502 503 504  /50x.html;
 53         location = /50x.html {
 54             root   html;
 55         }
 56 
 57         # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 58         #
 59         #location ~ \.php$ {
 60         #    proxy_pass   http://127.0.0.1;
 61         #}
 62 
 63         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 64         #
 65         #location ~ \.php$ {
 66         #    root           html;
 67         #    fastcgi_pass   127.0.0.1:9000;
 68         #    fastcgi_index  index.php;
 69         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70         #    include        fastcgi_params;
 71         #}
 72 
 73         # deny access to .htaccess files, if Apache's document root
 74         # concurs with nginx's one
 75         #
 76         #location ~ /\.ht {
 77         #    deny  all;
 78         #}
 79     }
 80 
 81 
 82     # another virtual host using mix of IP-, name-, and port-based configuration
 83     #
 84     #server {
 85     #    listen       8000;
 86     #    listen       somename:8080;
 87     #    server_name  somename  alias  another.alias;
 88 
 89     #    location / {
 90     #        root   html;
 91     #        index  index.html index.htm;
 92     #    }
 93     #}
 94     
 95 
 96     # HTTPS server
 97     #
 98     server {
 99         listen 8088 default_server;
100         listen [::]:8066 ipv6only=on;
101         listen [::]:443 ssl;
102         listen       443 ssl;
103         
104         server_name  localhost;
105         server_name  www.web1.com;
106         
107         ssl_certificate      C:\Users\Administrator\Desktop\openssl-0.9.8k_WIN32\bin\lifes.crt;
108         ssl_certificate_key  C:\Users\Administrator\Desktop\openssl-0.9.8k_WIN32\bin\lifes.key;
109 
110         ssl_session_cache    shared:SSL:1m;
111         ssl_session_timeout  5m;
112 
113         ssl_ciphers  HIGH:!aNULL:!MD5;
114         ssl_prefer_server_ciphers  on;
115 
116         location / {
117             proxy_pass   http://web1;
118         }
119     }
120     upstream web1{
121         server 127.0.0.1:8000;   #SA Server1
122     }
123     
124 }
nginx-1.15.1\conf\nginx.conf

再nginx目录下

启动服务 start nginx

重新加载 nginx -s reload

查看服务是否正常 nginx -t

5、能正常访问HTTPS站点

 https://www.web1.com

参考文章: https://blog.csdn.net/leedaning/article/details/71125559

转载于:https://www.cnblogs.com/cx59244405/p/9327461.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_702040.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么说企业做网站不要选择或找低价便宜的网站建设制作公司?

本人曾经做过这样多次调研,发现存在一个普遍性的问题,那就是当企业在决定做一网站之前,一般都会对市场上的建站服务商进行一次统一的咨询与调查,了解建站服务商的价格和实力问题,其中,感触最深的当然还是价…

10款在线网站原型设计工具 总有一款适合你

2019独角兽企业重金招聘Python工程师标准>>> 现在,基于云端的软件渐渐成为主流,而网站原型设计工具当然也不例外。在线原型工具相比于桌面版有得天独厚的优势,它不需要安装、不限制地点、不限制操作系统,无论你使用的L…

大型网站架构演化发展历程

1初始阶段的网站架构2应用服务和数据服务分离3使用缓存改善网站性能4使用应用服务器集群改善网站的并发处理能力5数据库读写分离6使用反向代理和CDN加速网站响应7使用分布式文件系统和分布式数据库系统8使用NoSQL和搜索引擎9业务拆分10分布式服务转载于:https://www.cnblogs.co…

杨泽业:让你的网站无限可能之给你的网站增加汉字转拼音的新功能

一个网站可以无限可能,你的网站可以成就你的事业!这不是一句空话,而是一个可行的方案。今天杨泽业来给大家讲解一下最简单的网站功能的增加。现在增加的是【汉字转拼音】的新功能为例,让你了解一下,你的网站是可以增加…

ubuntu 压缩率最高的软件_不用写采集规则也可以轻松采集网站文章,揭秘一款明泽文章采集软件的工作原理...

一直以来,大家都在用各种各样的采集器或网站自带的采集功能,如织梦采集侠、火车头采集器、八爪鱼采集器等,这些采集软件都有一个共同的特点,就是要编写采集规则才能采集到文章,这个技术性的问题,对于新手来…

如何设计网站权限系统(转载)

作者:Vance链接:https://www.zhihu.com/question/20313385/answer/118095995来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 后台产品狗,之前踩过权限控制系统的大坑。 做完项目整体复…

不错的学习网站

2019独角兽企业重金招聘Python工程师标准>>> 百度: http://naotu.baidu.com/ http://fis.baidu.com/ http://fex.baidu.com/ https://github.com/fex-team/fex-edu http://fex.baidu.com/blog/2014/05/build-performance-monitor-in-7-days/ http://www.…

搜索引擎提交工具_钦州SEO优化_SEO工具常用的有哪些大盘点,做SEO优化不再累...

发布时间:2020-11-06 08:11:48现在的搜索引擎中,已经有大量的或免费,或付费的seo工具,总的来讲,可以分为几个大类,包括但不限于网站管理员工具,外链查询工具,seo综合查询工具,关键词…

如何使用Apache的ab工具进行网站性能测试

Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。 工具/原料 Apache 方法/步骤 打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。 在Windows系统的命令行下…

网站服务器宕机,B站服务器宕机 股价短线走低冲上热搜 官方回复称因机房故障...

中华网财经7月14日讯,昨日晚间,哔哩哔哩弹幕网(简称“B站”)B站网页出现访问故障,客户端、网页版打开均无法加载内容。#B站崩了#话题登上微博热搜。多位网友表示,自己的B站已加载不出内容。凌晨2点20分,B站在微博发布声…

SharePoint 2013 新建网站集图解

SharePoint 2013 新建网站集图解 原文:SharePoint 2013 新建网站集图解前言:接触SharePoint的人可能是越来越多,但是很多人一接触就很迷茫,在技术群里问如何新建网站集,这样一篇图解,帮助新手学习在搭建好SharePoint环…

WordPress设计bug+WooCommerce漏洞导致网站存在被劫持风险

WordPress权限系统插件的设计缺陷和WooCommerce(流行电子商务插件)中的文件删除漏洞可允许***者获得对WordPress网站的完全控制权。Automattic公司推出的WooCommerce是一个很受欢迎的WordPress插件,它可以添加电子商务功能,这样网…

配置Exchange OWA和Sharepoint网站单点登录

配置Exchange OWA和Sharepoint网站单点登录如果我们在组织中已经部署完成了Lync、Exchange以及Sharepoint,那么我们会发现这三套系统在通过域账户登录计算机时,如果本机有安装Outlook和Lync,那么在登录Lync或启动Outlook的时候就会自动使用当…

网站预加载进度条的实现

我们经常会看到,一些站点在首次进入的时候会先显示一个进度条,等资源加载完毕后再呈现页面,大概像这样:然后整个页面的操作就会非常流畅,因为之后没必要再等待加载资源了。尤其是在移动端,或者是页游中&…

ai字体素材网站_4个网站,涵盖几乎所有素材,字体、设计、图片各种资源管够...

最近发现了几个优质的网址导航,收录了各类素材网站,提供各类字体素材、高清图片、在线设计网站,还有很多办公小工具。01字体酷站https://www.fonturl.com/ 全球最大的字体网址导航网站网站收录了大量优质字体素材,左侧为各种字体相…

关于移动端架构的好的学习网站

1、这个主要讲IM SDK架构的设计: http://tech.youzan.com/you-zan-im-sdk-ke-hu-duan-she-ji/ 2、这个http://casatwy.com 关于IOS应用架构的内容比较多哦,而且很不错哦。 转载于:https://www.cnblogs.com/goodboy-heyang/p/4675814.html

对学校公开课信息网站一次渗透测试

首先在班群里看见有公开课报名链接,于是打算随意试试。毕竟看到网站试运行,嘿嘿嘿。 打开网站,是这样的: 看到有上传信息的网页: 点击后页面信息如下: 看到查看信息的按钮,说明这里有数据库交互…

wordpress网站后台打开速度很卡很慢解决方法?

为什么80%的码农都做不了架构师?>>> wordpress网站后台打开速度很慢的原因: wordpress使用了Open Sana字体,该字体的文件存放在美国Google的服务器上。当你打开网站的时,左下角会一直加载fonts.googleapis.com信息&am…

PageAdmin CMS网站建设教程:如何实现信息的定时发布

PageAdmin Cms发布文章时候有一个上线时间设置和下线时间设置,网站编辑人员可以利用这个功能来实现定时发布,在信息发布界面,如下图: 设置后就会自动加入定时任务中,注意这个功能需要再系统设置>>自动任务执行间…

html中 主标题与副标题,wordpress首页SEO:让主标题+副标题作为页面title

很喜欢用wordpress,主要原因还是在于网络上有无穷无尽的模板主题。但有的时候,很多模板主题设置后,网站首页的title只显示网站的名称,这对于品牌站来说,也许正合适,但对于小站来说,却不太适合SE…