反代理nginxproxymanager

简介

我们怎么样才能把 IP + 端口变成域名来访问?

答案是用反向代理

  • nginx proxy manager

项目展示

GitHub原项目地址(感谢作者的付出):https://github.com/NginxProxyManager/nginx-proxy-manager

Docker镜像地址:https://hub.docker.com/r/jlesage/nginx-proxy-manager

官网地址:https://nginxproxymanager.com/

环境准备

  • 服务器:腾讯云轻量应用服务器
  • 系统:Debian 10
  • 域名一枚,并做好解析到服务器上
  • 安装好 Docker、Docker-compose

什么是代理

代理就是第三方。

正向代理

反代理nginxproxymanager插图

你要买国外小 G 家的鞋子,你没有 paypal 和信用卡,买不了,于是你找到了叫小 V 的代购帮你到海外买,小 V 找到海外的卖家小 G,帮你买了鞋子,然后寄回给了你。

这个小 V 就是正向代理。

正向代理的特点是,可以保护访问者的信息。因为小 V 是个职业代购,他在帮你代购鞋子的同时也帮别人代购鞋子,而且他不仅代购鞋子,还代购箱子、家具、电饭煲,卖家小 G 只知道有人买了我的鞋子,我交给了小 V,但并不知道具体是谁买了他家的鞋子。

反向代理

反向代理,顾名思义,正好相反,可以保护卖家的信息。

反代理nginxproxymanager插图1

具体可以看视频。

好了,回来。

没有了宝塔,我们今天用一个更简单的 Docker 项目来完成反向代理的操作。

Nginx Proxy Manager

Nginx proxy manager 是一个很简单的反向代理工具。

官网:https://nginxproxymanager.com/

门槛极低,操作简单,不需要你掌握很复杂的 Nginx 配置知识,只需要几步就能很轻松完成反向代理的设置和 SSL 证书的部署。

it had to be so easy that a monkey could do it.

配置参考:

Docker-compose 文件:

version: "3" services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: # These ports are in format <host-port>:<container-port> - '80:80' # Public HTTP Port - '443:443' # Public HTTPS Port - '81:81' # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: 'true' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt depends_on: - db db: image: 'jc21/mariadb-aria:latest' restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql 

默认登陆名和密码:

Email: admin@example.com Password: changeme 

查看当前服务器 IP:

curl ifconfig.me 

查看 Docker 容器内部 IP:

ip addr show docker0 

关于 Internal Server Error 问题

主要是因为数据库链接和初始化。 在docker-compose 中有个映射是 →./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro 这个.sql 文件可以去作者的仓库里面找到:https://github.com/mikecao/umami/blob/master/sql/schema.mysql.sql 需要提前映射到安装的地方,来初始化数据库(也就是要提前建表),整了一天才发现主要问题在这…… 可能主要是因为这个东西可以静态部署,所以没有整合到应用里,需要手动执行?

大家可以自行测试一下!

原文链接:https://www.dianjilingqu.com/467184.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享