随意居论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1815|回复: 1

[docker]利用nginx反代内网服务

[复制链接]

2

主题

3

帖子

26

积分

版主

Rank: 7Rank: 7Rank: 7

积分
26
发表于 2022-2-17 09:39:59 | 显示全部楼层 |阅读模式
本帖最后由 fsunset 于 2022-2-21 17:01 编辑

使用nginx作为反代服务器可以给内网服务加上tls进行安全传输与访问,同时也能多端口复用,提高了我们使用的安全性与便利性;此篇文章即适用于docker同样也适用与宿主机安装;以下为教程内容(教程仅以阿里云域名为例其他域名方法类似,在此不详细说明了):

1:  在阿里云的域名解析中做好本机的域名解析,动态ip的需先做好ddns(此处可参大白教程);
2:  拿到阿里云的AccessKey,此处参考我写的tls文章;
3:  ssh登陆到服务器;
4:  准备与nginx相关的文件夹及文件:
4.1新建文件夹

  1. $ mkdir nginx
  2. $ mkdir nginx/conf.d nginx/ssl
  3. $ pwd               #获取当前目录
复制代码
4.2 新建反代配置文件
  1. $ touch nginx/conf.d/pve.conf               #新建pve.conf文件,pve可以替换成你自己的服务名,任意都可以
  2. $ vim nginx/conf.d/pve.conf              #编辑pve.conf文件,输入下列内容

  3. server {
  4.         listen       10440 ssl http2;             #端口可以任意设置
  5.         server_name  pve.text.com;             #此处pve.text.com为反代后的域名
  6.         ssl_certificate       /etc/nginx/ssl/*.text.com_ecc/fullchain.cer;              #加粗部分按你自己域名修改
  7.         ssl_certificate_key     /etc/nginx/ssl/*.text.com_ecc/*.text.com.key;              #加粗部分按你自己域名修改
  8.         ssl_session_cache    builtin:1000 shared:SSL:10m;
  9.         ssl_session_timeout  1d;
  10.         keepalive_timeout   120s 120s;
  11.         ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  12.         ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
  13.         ssl_prefer_server_ciphers  on;
  14.         add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
  15.         add_header X-Frame-Options "DENY";
  16.         location / {
  17.                 proxy_pass  http:/10.201.1.215:18080;             #反代语句,就这一句,地址及端口按你自己服务的修改
  18.                 }
  19.         error_page 497 https://$host:$server_port$uri$is_args$args;             #497跳转,可以保证在你输http://pve.text.com:1044的情况下跳转https://pve.text.com:1044
  20.         error_page 404 /404.html;
  21.                 location = /40x.html {
  22.                 }
  23.         error_page 500 502 503 504 /50x.html;
  24.                 location = /50x.html {
  25.                 }
  26.         }
复制代码
文件到此准备完毕.
5:  获取证书,内容与上篇文章大致相同;
  1. $ docker run -itd --name acme.sh --net=host -v /root/nginx/ssl:/acme.sh -e Ali_Key=xxxxx -e Ali_Secret=xxxxxxxxxxx --restart=always neilpang/acme.sh daemon               #/root为4.1获取到的目录 dnspod为DP_Id DP_Key
  2. $ docker exec acme.sh --set-default-ca --server letsencrypt             #修改默认的证书的CA
  3. $ docker exec acme.sh --issue --dns dns_ali -d *.text.com' --keylength ec-384             #获取证书 dnspod 为 dns_dp
复制代码
6: 部署nginx开始反代
  1. $ docker run -itd --name nginx -v /root/nginx/conf.d:/etc/nginx/conf.d -v /root/nginx/ssl:/etc/nginx/ssl --net=host --restart=always nginx               #/root为4.1获取到的目录
复制代码
nginx已经成功的跑起来了.

7:新增其他反代服务
  1. $ cp nginx/conf.d/pve.conf nginx/conf.d/aria.conf               #复制一个配置文件并修改
  2. $ docker exec -it nginx nginx -t                         #测试配置文件是否正确
  3. $ docker exec -it nginx nginx -s reload               #重载配置文件
复制代码
如果不会的话可以在qq群547927397联系我

回复

使用道具 举报

2

主题

3

帖子

26

积分

版主

Rank: 7Rank: 7Rank: 7

积分
26
 楼主| 发表于 2022-2-17 09:46:35 | 显示全部楼层
本帖最后由 fsunset 于 2022-2-17 09:49 编辑

emmm,论坛编辑器不太好用,莫名其妙生成了很多<b>,删除的时候可能会误删一些东西,有问题在群里问吧;
小白注意,#后面为注释,不要复制进去了,另外命令行前面带$ 的也不要复制进去了,这个代表这一行是输入的命令

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|随意居论坛 ( 粤ICP备2022000312号 )

GMT+8, 2025-1-9 18:20 , Processed in 0.082490 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表