Emby反向代理利用nginx解决客户端自动回源的问题并配置certbot管理ssl续期教程

Emby反向代理利用nginx解决客户端自动回源的问题并配置certbot管理ssl续期教程

背景

中转ip代理设置完毕,emby网页客户端访问中转机子正常走代理流量,但是在客户端会自动回源,也就是没有经过中转机子再到客户端。遂想解决客户端回源问题。 废话不多说,开干。 我的环境:Debian11 PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" 条件1:自己已有中转端口或要反代的域名 条件2:自己先在机子安装nginx,安装方法就不赘述了,太多了~ ps:参考教程:如何在Debian 11安装Nginx nginx基本使用小白命令必看,大佬略过Nginx命令 编辑默认nginx配置文件,任何方式打开这个文件编辑更改成如下,我这里选择nano编辑方式。
nano /etc/nginx/sites-enabled/default
  server {
 listen       80;
 server_name  xxx.com;#你的域名

client_max_body_size 6000M;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for';
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
proxy_cache off;
proxy_redirect off;
proxy_buffering off;

location / {
    proxy_pass http://127.0.0.1:8080;#反代域名
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_ssl_verify off;
    proxy_http_version 1.1;
    proxy_set_header Host 127.0.0.1:8080;#反代域名
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400;
    }
}
修改保存重启,nginx任何配置修改都要记得重启和验证配置文件是否正确。 验证配置是否正确:
nginx -t
正确则会输出这样的结果:
root@ConsiderateOffbeat-VM:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
错误他会打印详细哪一行有错误,错误是什么都会告诉你,根据报错结果修改即可。 只需要复制粘贴修改其中三点#号注释,#域名就是填写访问域名,反代域名#就是填写要反代的本地端口或者你远程的域名。例:我是极光面板中转的入站本地端口8080,所以我这样写,其他自行参考。 接着重启nginx,每当你更改其配置时,你都需要重新加载或重新启动Nginx。重新加载将加载新配置,使用新配置启动新的woker进程并正常关闭旧woker进程。要重新加载Nginx,请使用以下命令之一
systemctl reload nginx  #任选其一
service reload nginx  #任选其一
这部分采用certbot管理部署自动ssl续期 安装:
apt install -y snapd
sudo snap install core; sudo snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
certbot --agree-tos --nginx --email #填你邮箱 -d #填你域名
# 例:certbot --agree-tos --nginx --email 123456789@qq.com -d www.baidu.com
设置定时任务
crontab -e
填入如下
0 0 1 * * /usr/bin/certbot renew --force-renewal
我这里保存编辑方式跟vi的方式一样,键入i编辑,esc返回键入:wq 进行保存即可。根据自己环境编辑保存,有的是nano。 查看文件crontab
nano /etc/crontab
是否跟我的一致,不一致则根据情况修改。
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
教程完毕,其他系统环境配置参考官方说明,都有非常详细的步骤。 certbot官网