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

Nginx上配置SSL证书

原文链接:https配置

方法1: HTTPS 访问本地静态网页

server{

    #监听443端口

    listen 443;

    #对应的域名,把baofeidyz.com改成你们自己的域名就可以了

    server_name xl8836.xyz;

    ssl on;

    #从腾讯云获取到的第一个文件的全路径

    ssl_certificate /etc/nginx/cert/cert-1540543343134_www.xl8836.xyz.crt;

    #从腾讯云获取到的第二个文件的全路径

    ssl_certificate_key /etc/nginx/cert/cert-1540543343134_www.xl8836.xyz.key;

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    ssl_prefer_server_ciphers on;

    #这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。

    location / {

            #文件夹

            root /home/python/Desktop/html;

            #主页文件

            index index.html;

    }

}

server{

    listen 80;

    server_name xl8836.xyz;

    rewrite ^/(.*)$ https://xl8836.xyz:443/$1 permanent;

}

方法2: 通过 Gunicorn 访问Flask项目

# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass

upstream flask {

        server 127.0.0.1:5000;        # 多台服务器, 依次添加服务器的地址及端口 server host:port

        # server 127.0.0.1:5001;

}

server {

        # 监听80端口

        listen 80 default_server;

        listen [::]:80 default_server;

 

        root /var/www/html;

 

        index index.html index.htm index.nginx-debian.html;

 

        server_name _;

 

        location / {

                # 请求转发到gunicorn服务器

                proxy_pass http://127.0.0.1:5000;

                # 请求转发到多个gunicorn服务器

                # proxy_pass http://flask;

                # 设置请求头,并将头信息传递给服务器端

                proxy_set_header Host $host;

                # 设置请求头,传递原始请求ip给 gunicorn 服务器

                proxy_set_header X-Real-IP $remote_addr;

        }

}

方法3: 通过https协议访问Flask项目

upstream flask {

        server 127.0.0.1:5000;

        # server 127.0.0.1:5001;

}

server{

    #监听443端口

    listen 443;

    #对应的域名,把baofeidyz.com改成你们自己的域名就可以了

    server_name xl8836.xyz;

    ssl on;

    #从腾讯云获取到的第一个文件的全路径

    ssl_certificate /etc/nginx/cert/cert-1540543343134_www.xl8836.xyz.crt;

    #从腾讯云获取到的第二个文件的全路径

    ssl_certificate_key /etc/nginx/cert/cert-1540543343134_www.xl8836.xyz.key;

    ssl_session_timeout 5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

    ssl_prefer_server_ciphers on;

    #这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。

    location / {

            # 请求转发到gunicorn服务器

            proxy_pass http://127.0.0.1:5000;

            # 请求转发到多个gunicorn服务器

            # proxy_pass http://flask;

            # 设置请求头,并将头信息传递给服务器端

            proxy_set_header Host $host;

            # 设置请求头,传递原始请求ip给 gunicorn 服务器

            proxy_set_header X-Real-IP $remote_addr;

    }

}

server{

    listen 80;

    server_name xl8836.xyz;

    rewrite ^/(.*)$ https://xl8836.xyz:443/$1 permanent;

}

重要

配置完成后,检查一下nginx配置文件是否可用,有successful表示可用。

$ nginx -t // 检查nginx配置文件

配置正确后,重新加载配置文件使配置生效:

$ nginx -s reload // 使配置生效

到阿里云ECS的管理后台的安全组,修改端口过滤规则把80端口和443端口开放才能访问到。

 

 

至此,nginx的https访问就完成了,并且通过rewrite方式把所有http请求也转成了https请求,更加安全。

如需重启nginx,用以下命令:

$ service nginx stop // 停止
$ service nginx start // 启动
$ service nginx restart // 重启

lsof -i:端口号, 如:

lsof -i:5000 查看占用5000端口的应用

 

kill -9 4937 杀死PID为1062的应用

有的时候杀死一个不能全部结束, 所以需要查看一下

 

sudo pkill redis-server 关闭redis-server所有后台

sudo pkill gunicorn 关闭gunicorn所有后台

 

ps aux | grep redis-server 查看redis-server进程信息

ps aux | grep gunicorn 查看redis-server进程信息

 

后台启动gunicorn

gunicorn -w 1 -D -b 127.0.0.1:5000 --threads 16 manage:app

-w 进程

-D 后台运行

-b host:port        ip地址及端口

--threads int 线程数量

gunicorn -h 查看帮助, 建议使用 gunicorn -h | more # 查看过程使用 Enter 或者 Ctrl+F ^-^

manage:app 运行文件名称:Flask程序实例名

相关文章:

  • Nginx配置SSL证书实现HTTPS访问
  • Spring Boot 入门
  • SpringBoot2整合Thymele时,静态资源加载不出来
  • SpringBoot使用jdbc数据访问时遇到的问题
  • VirtualBox虚拟机中CentOS 7的网络配置
  • docker部署mysql 并实现远程连接(navicat)
  • Mysql 8.0.13 安装和卸载教程(windows10)
  • django把SQLite数据库的数据导入到MySQL数据库中
  • 采用Nginx+uWSGI部署Django项目
  • Hexo Next主题中集成gitalk评论系统
  • Django对符合条件的值求和和分组求和(aggregate)
  • navicat 连接远程数据库,出现2013错误并完美解决
  • Windows 10的中文用户名怎么改成英文?
  • VirtualBox安装Centos7
  • CentOS 7 开启ssh服务
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • ES学习笔记(12)--Symbol
  • extjs4学习之配置
  • Fabric架构演变之路
  • Javascript Math对象和Date对象常用方法详解
  • Java教程_软件开发基础
  • Linux中的硬链接与软链接
  • node学习系列之简单文件上传
  • Sass 快速入门教程
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 和 || 运算
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 小而合理的前端理论:rscss和rsjs
  • 一些css基础学习笔记
  • (1) caustics\
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (六)vue-router+UI组件库
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core 中插件式开发实现
  • .Net Redis的秒杀Dome和异步执行
  • .project文件
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [20190416]完善shared latch测试脚本2.txt
  • [AIGC] MySQL存储引擎详解
  • [Android]How to use FFmpeg to decode Android f...
  • [bzoj1912]异象石(set)
  • [C#]DataTable常用操作总结【转】
  • [ESP32 IDF]web server