Nginx上配置SSL证书

﹏ヽ暗。殇╰゛Y 2022-04-18 06:35 417阅读 0赞
原文链接:https配置

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

server{

  1. \#监听443端口
  2. listen 443;
  3. \#对应的域名,把baofeidyz.com改成你们自己的域名就可以了
  4. server\_name xl8836.xyz;
  5. ssl on;
  6. \#从腾讯云获取到的第一个文件的全路径
  7. ssl\_certificate /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.crt;
  8. \#从腾讯云获取到的第二个文件的全路径
  9. ssl\_certificate\_key /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.key;
  10. ssl\_session\_timeout 5m;
  11. ssl\_protocols TLSv1 TLSv1.1 TLSv1.2;
  12. ssl\_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  13. ssl\_prefer\_server\_ciphers on;
  14. \#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
  15. location / \{
  16. \#文件夹
  17. root /home/python/Desktop/html;
  18. \#主页文件
  19. index index.html;
  20. \}

}

server{

  1. listen 80;
  2. server\_name xl8836.xyz;
  3. rewrite ^/(.\*)$ [https://xl8836.xyz:443/$1][https_xl8836.xyz_443_1] permanent;

}

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

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

upstream flask {

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

}

server {

  1. \# 监听80端口
  2. listen 80 default\_server;
  3. listen \[::\]:80 default\_server;
  4. root /var/www/html;
  5. index index.html index.htm index.nginx-debian.html;
  6. server\_name \_;
  7. location / \{
  8. \# 请求转发到gunicorn服务器
  9. proxy\_pass [http://127.0.0.1:5000][http_127.0.0.1_5000];
  10. \# 请求转发到多个gunicorn服务器
  11. \# proxy\_pass [http://flask][http_flask];
  12. \# 设置请求头,并将头信息传递给服务器端
  13. proxy\_set\_header Host $host;
  14. \# 设置请求头,传递原始请求ip gunicorn 服务器
  15. proxy\_set\_header X-Real-IP $remote\_addr;
  16. \}

}

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

upstream flask {

  1. server 127.0.0.1:5000;
  2. \# server 127.0.0.1:5001;

}

server{

  1. \#监听443端口
  2. listen 443;
  3. \#对应的域名,把baofeidyz.com改成你们自己的域名就可以了
  4. server\_name xl8836.xyz;
  5. ssl on;
  6. \#从腾讯云获取到的第一个文件的全路径
  7. ssl\_certificate /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.crt;
  8. \#从腾讯云获取到的第二个文件的全路径
  9. ssl\_certificate\_key /etc/nginx/cert/cert-1540543343134\_www.xl8836.xyz.key;
  10. ssl\_session\_timeout 5m;
  11. ssl\_protocols TLSv1 TLSv1.1 TLSv1.2;
  12. ssl\_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  13. ssl\_prefer\_server\_ciphers on;
  14. \#这是我的主页访问地址,因为使用的是静态的html网页,所以直接使用location就可以完成了。
  15. location / \{
  16. \# 请求转发到gunicorn服务器
  17. proxy\_pass [http://127.0.0.1:5000][http_127.0.0.1_5000];
  18. \# 请求转发到多个gunicorn服务器
  19. \# proxy\_pass [http://flask][http_flask];
  20. \# 设置请求头,并将头信息传递给服务器端
  21. proxy\_set\_header Host $host;
  22. \# 设置请求头,传递原始请求ip gunicorn 服务器
  23. proxy\_set\_header X-Real-IP $remote\_addr;
  24. \}

}

server{

  1. listen 80;
  2. server\_name xl8836.xyz;
  3. rewrite ^/(.\*)$ [https://xl8836.xyz:443/$1][https_xl8836.xyz_443_1] permanent;

}

重要

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 1

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 2

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

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

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

lsof -i:端口号, 如:

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 3

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 4

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

sudo pkill gunicorn 关闭gunicorn所有后台

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 5

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 6

后台启动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程序实例名

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FzaHF5amo_size_27_color_FFFFFF_t_70 7

发表评论

表情:
评论列表 (有 0 条评论,417人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx 配置 ssl 证书

    > 在部署线下测试环境时浏览器会自动将http替换成https,又因为测试环境没有证书经常会导致跳转错误,所以自己配置一个ssl证书就可以避免这个问题。 > 下面记录我在M