首页 > 系统相关 >腾讯云服务器Nginx反向代理的Photoprism(包括https设置)

腾讯云服务器Nginx反向代理的Photoprism(包括https设置)

时间:2024-03-15 13:55:19浏览次数:33  
标签:Nginx nginx Photoprism etc server ssl proxy https

2024年3月15日,因为不想忘记前面关于Nginx反向代理Photoprism的内容。这里记录下,如果能帮助到点击到这篇博客的人就更好了。
主要分为三个部分,第一个部分是部署Photoprism,第二个部分是Nginx反向代理,第三个部分是https设置

前置条件(没有的话,就不要往下看了,或者先稍微了解下再往下看)

  1. 了解linux系统命令,知道是什么意思
  2. 了解vim或者其他编辑器(如果你没有图形界面的话)
  3. 了解ip,端口等计算机网络相关内容
  4. 一个解析好的域名(反向代理需要用)

部署Photoprism

这一块官方有很详细的教程,这里我就简单把命令贴一下。

sudo apt install docker  // 安装docker
wget https://dl.photoprism.app/docker/docker-compose.yml  // 下载photoprism镜像配置文件
docker compose up -d  // 启动服务

输入上面命令其实就结束了,如果你有图形界面的话,可以 浏览器输入http://localhost:2342/应该就能看到界面了。如果你只想在局域网或者自己电脑上用那到这里就可以结束了

Nginx反向代理

Nginx如果你想研究的话不建议百度之类的瞎看,去官网说明之类的地方看一看

Nginx服务启动

sudo apt-get install -y nginx // 安装Nginx
sudo systemctl enable --now nginx // 开机自启动Nginx

反向代理(http)

反向代理需要一个解析好了的域名,解析域名这块腾讯云服务器有很多教程,解析完后再往下走。
新建一个Nginx配置文件,配置文件的名称自己喜欢就行, 这里是“photoprism.conf",但是后缀要一样

vim /etc/nginx/conf.d/photoprism.conf

把以下内容复制进去

server {
    listen 80;
    server_name <你的域名>;  # abc.com之类的
    client_max_body_size 0;

    location / {
        proxy_pass http://127.0.0.1:2342;  # 你代理的页面,Photoprism默认的就是这个。不需要改动
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

然后重新启动两个服务

sudo systemctl restart nginx
docker-compose up -d

现在你就可以在任何电脑输入你的域名,访问你的照片库,当然目前还是个http裸奔,不介意的话其实也没事。黑客什么的应该也看不上我存的内容

反向代理(https)

这个是重头戏了!
这个是重头戏了!
这个是重头戏了!
先把需要的东西准备好,ssl证书。如果你也是用的腾讯云的话,可以按照下面的步骤操作

  1. 在控制台的搜索栏直接搜索"ssl证书"
  2. 我的证书->申请免费证书
  3. 成功之后,下载Nginx版本就行

把这个证书解压后文件全部传到服务器上,推荐Winscp工具,怎么使用靠你自己去调查了。
接下来就是Nginx配置文件设置

sudo vim /etc/nginx/conf.d/photoprism.conf

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name <你的域名>;
client_max_body_size 500M;

# With SSL via Let's Encrypt
# 对应的ssl证书, 压缩包解压出来有四个文件,包含下面两个后缀的就行
# 记得路径改成你的证书所在路径,一般会放到/etc/nginx下面。其他路径我没进行尝试,应该也没问题的
ssl_certificate /etc/nginx/xxxxxx.crt; 
ssl_certificate_key  /etc/nginx/xxxxxx.key; 

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;

    proxy_pass http://127.0.0.1:2342;

    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    client_max_body_size 500M;

}
}

如果你重启Nginx的时候遇到了下面的问题
```bash
Job for nginx.service failed because the control process exited with error code.

那就用下面的命令查看日志

sudo systemctl status nginx

如果日志显示下面语句

Mar 15 13:41:08 VM-4-6-ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Mar 15 13:41:08 VM-4-6-ubuntu nginx[584795]: nginx: [emerg] no "ssl_certificate" is defined for the "listen ... ssl" directive in /etc/nginx/sites-enabled/default:21
Mar 15 13:41:08 VM-4-6-ubuntu nginx[584795]: nginx: configuration file /etc/nginx/nginx.conf test failed

进入错误提到的地方,也就是这个/etc/nginx/sites-enabled/default

sudo vim /etc/nginx/sites-enabled/default

变更成下面的样子,就是改成443端口,并且添加ssl认证

server {
        #listen 80 default_server;
        #listen [::]:80 default_server;

        # SSL configuration
        #
        # 最开始默认的是80端口,为了ssl,我们打开443端口。把80的注释掉了了
        listen 443 ssl default_server;
        listen [::]:443 ssl default_server;

       # 这里就是前面提到的ss证书的第二个位置
        ssl_certificate /etc/nginx/liulustore.com_bundle.crt; 
        ssl_certificate_key  /etc/nginx/liulustore.com.key; 
       # 这之后的内容都不需要变更

完成之后记得重启两个服务

sudo systemctl restart nginx
docker-compose up -d

到这里就全部结束了

标签:Nginx,nginx,Photoprism,etc,server,ssl,proxy,https
From: https://www.cnblogs.com/zhaobangliu/p/18075243

相关文章

  • nginx是怎么实现高可用的
    1、进程池 nginx在启动的时候会创建有固定数量(此数量在配置文件可配置)的worker即进程池,在之后的运行过程中不会在fork新的worker,并且一一绑定分配好的cpu。(解决了频繁创建和切换进程的成本) 2、多阶段 nginx把整个Web服务器分解成了多个“功能模块”,可以在配置文件里任......
  • 记录一次 nginx 代理调试 ie7
    worker_processes1;events{worker_connections1024;}http{includemime.types;default_type"text/html;charset=utf-8";sendfileon;keepalive_timeout65;server{listen80;server_namelocalh......
  • 使用Nginx将大模型Web应用部署到公网
    使用Nginx将大模型Web应用部署到公网大模型训练完毕后,我们可以用SWIFT快速构建一个WebDemo大模型Web应用,本文将介绍如何使用Nginx将大模型Web应用部署到公网。在进行后续步骤之前,先按照搭建一个大模型API服务中的方法安装好SWIFT框架,并激活到你的conda环境。启动大模型Web应用......
  • 阿里云配置http转https
    参考:https://www.cnblogs.com/alexfly/p/10615986.htmlhttps://www.cnblogs.com/SemiconductorKING/p/9106971.html背景:原网站已备案且正常运行了,现在要将网站改为https 1.阿里云首页搜索“ssl证书” 2.点击购买 3.搭配选择(“免费型DV”,“单域名”最后会显示0元)购买如图......
  • Linux源码安装nginx1.20.2
    下面是关于Linux源码安装nginx1.20.2的操作流程目录前言1,安装准备1.1下载安装包 1.2上传安装包1.3解压  1.4关闭防火墙和selinux2,安装 nginx依赖库以及编译环境2.1安装nginx依赖库 2.2执行configure脚本生成makefile配置文件2.2.1可能出现的错误 3,......
  • 完美解决浏览器输入http被自动跳转至https问题
    查阅相关资料,发现这是浏览器的HSTS(HTTPStrictTransportSecurity)功能引起的。在安装配置SSL证书时,可以使用一种能使数据传输更加安全的Web安全协议,即在服务器端上开启HSTS,它会告诉浏览器只能通过HTTPS访问,而绝对禁止HTTP方式。因此,只要关闭浏览器的HSTS功能就可以解决这个问题......
  • nginx-proxy-manager关于DNSPod创建证书失败
    nginx-proxy-manager关于DNSPod创建证书失败此问题在2.9.19版本开始就已经存在,原因是zope引起的,由于ARM架构一直安装失败所以无法打包到镜像中,建议使用如下方法修复此问题:首先确保nginx-proxy-manager-zh的Docker容器已经正常运行,使用docker-composeps查看容器名,这里假设容器......
  • 配置 HTTP/HTTPS 网络代理
    使用Docker的过程中,因为网络原因,通常需要使用HTTP/HTTPS代理来加速镜像拉取、构建和使用。下面是常见的三种场景。 为dockerd设置网络代理"dockerpull"命令是由dockerd守护进程执行。而dockerd守护进程是由systemd管理。因此,如果需要在执行"dockerpull"命令时......
  • 如何在Nginx服务器上配置访问静态文件目录并提供文件下载功能
    引言在搭建网站的过程中,我们经常需要让访客通过URL直接访问或下载存储在服务器特定目录下的静态文件。本文将详细介绍如何在Nginx服务器环境中配置一个名为"download"的文件目录,以便用户能够通过浏览器访问并下载其中的手册和其他文档。1.目录结构与权限设置首先,请确保您的Ngi......
  • http怎么改成https
    在互联网里,数据的安全传输显得尤为重要。从HTTP转变为HTTPS是提升网站安全性的关键一步。我们理解HTTP与HTTPS之间的差异,超文本传输协议(HTTP)是互联网上应用最为广泛的协议之一。然而,它存在一个明显的缺陷:数据传输过程中不加密而是以明文的方式进行传输,意味着数据容易被第三方截......