本文最后更新于275 天前,其中的信息可能已经过时
-使用Debian12
(需要提前准备一个已经解析好的域名)
安装nginx
- 更新系统的软件包列表
首先,确保系统的包管理器有最新的软件包列表:
sudo apt update<br>sudo apt upgrade
- 安装 Nginx
在 Debian 12 上可以直接使用 apt 来安装 Nginx:
sudo apt install nginx
- 启动并启用 Nginx
安装完成后,启动 Nginx 服务,并设置为开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
然后浏览器输入自己vps的ip地址检查nginx是否启动成功
申请证书
使用 Let’s Encrypt 获取证书可以通过 certbot 工具完成:
- 安装 certbot:
sudo apt install certbot python3-certbot-nginx
- 运行 certbot 并为 Nginx 生成证书:
sudo certbot --nginx
这个命令会自动为你的域名生成证书,并更新 Nginx 的配置,也会自动续签证书
然后就是修改Nginx配置文件,因为我是轻量应用,就直接在nginx.conf中修改。
文件目录为/etc/nginx/nginx.conf
内容如下(和nginx默认不太一样,可以删除原有内容复制下方内容以免奇奇怪怪的报错)需要自己修改的地方为中文内容,域名无需加端口号
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
# Global settings
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
# Enable Gzip compression
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# SSL settings
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_buffer_size 4k;
# Logging settings
access_log /var/log/nginx/access.log;
# Map directive for upgrade connections
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
# Define proxy cache path
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
# Virtual host configurations
server {
listen 80;
# 你的域名
server_name 你的域名;
return 301 https://$host$request_uri;
location / {
# 你需要反代的emby服务器域名
proxy_pass https://emby服务器的域名;
}
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
# 你的域名
server_name 你的域名;
# 你的证书
ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem;
client_max_body_size 20M;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
# 你需要反代的emby服务器域名
proxy_pass https://emby服务器的域名;
# 你需要反代的emby推流地址
proxy_redirect https://推流地址/ https://你的域名/s1/;
# 你需要反代的emby服务器主页
proxy_set_header Referer "https://emby服务器的域名/web/index.html";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $proxy_host;
proxy_ssl_server_name on;
proxy_http_version 1.1;
}
location /s1 {
rewrite ^/s1(/.*)$ $1 break;
# 你需要反代的emby推流地址
proxy_pass https://推流地址/;
proxy_set_header Referer "https://emby服务器的域名/web/index.html";
proxy_set_header Host $proxy_host;
proxy_ssl_server_name on;
proxy_buffering off;
}
}
}
该配置文件修改自大佬lateautumn2
完成所有更改后,测试并重新加载 Nginx 配置:
sudo nginx -t<br>sudo systemctl reload nginx
这样,就成功完成了emby的反代配置,浏览器输入自己的域名访问即可👏