首页
关于本博客
友情链接
推荐
linux/shell
Search
1
LEDE官方固件安装中文语言包的方法
11,087 阅读
2
LEDE固件踢出弱信号客户端,实现WiFi无缝漫游脚本
9,183 阅读
3
基于CloudFlare API的纯Shell动态DNS(DDNS)脚本
8,153 阅读
4
一次OpenVPN交叉编译笔记
6,664 阅读
5
利用iptables的string模块来屏蔽域名(关键词匹配)
6,111 阅读
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
C#
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
nginx
互联网应用
IP地址段汇总
登录
Search
标签搜索
nginx
OpenWrt
openvpn
SSH
seafile
cloudflare
iptables
openssl
linux
letsencrypt
CentOS
反向代理
ftp
openvpn配置模板
vsftpd
seafile网盘
Linux启动脚本
ddns
nas
seafile服务器
自渡
累计撰写
75
篇文章
累计收到
1
条评论
首页
栏目
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
C#
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
nginx
互联网应用
IP地址段汇总
页面
关于本博客
友情链接
推荐
linux/shell
搜索到
8
篇与
nginx
的结果
2024-11-15
如何在网页跳转时不带Referer信息
Referer 是一个 HTTP 头部字段,用于指示请求中来源的 URL。当用户点击链接从一个网页跳转到另一个网页时,浏览器会在请求中自动包含这个字段,告诉目标网站用户是从哪个页面过来的。主要用途网站分析:站长可以通过分析 Referer 信息来了解流量来源,判断哪些页面带来了更多的访问者。安全性:某些网站可能会根据 Referer 的值决定是否允许访问,防止直接访问(例如,防止热链接)。个性化内容:网站可以根据用户的来源来提供定制的内容或广告。可能存在的一些隐私问题反代时暴露头部信息反向代理:在你反向代理某个网站时,如果没有控制好Referer参数,那么在你通过前端Web服务器访问时,前端的Host头部将会通过Referer参数传递到后端服务器,如果后端服务器开启了WAF或者做了禁止反向代理的一系列措施时,反向代理将无法成功。敏感信息泄露查询字符串:如果用户通过包含敏感信息的 URL 访问某个页面(例如,https://example.com/search?q=secret),点击链接后,这些信息会被包含在 Referer 中,可能泄露给目标网站。用户行为追踪网站分析:通过分析 Referer 信息,网站可以追踪用户的浏览路径,了解用户的行为模式,进而可能进行个性化广告投放或其他形式的用户追踪。个性化数据登录状态:如果用户从一个包含用户身份信息的页面(如个人资料或账户设置)跳转到另一个页面,Referer 可能泄露用户的身份或会话信息。隐私保护不足跨站请求:某些情况下,Referer 信息可能被恶意网站利用,进行跨站请求伪造(CSRF)攻击,尤其是当用户登录状态泄露时。不必要的信息共享第三方网站:当用户在多个站点之间跳转时,Referer 可能包含用户在其他网站上的活动信息,用户可能并不希望这些信息被分享给第三方。具体措施1. 使用 HTTP Header在使用nginx反向代理某个网站时,可以通过设置适当的 HTTP 头来控制 Referer 信息。比如使用 Referrer-Policy 头:add_header Referrer-Policy "no-referrer";2. 使用 HTML <meta> 标签在 HTML 中,可以使用 <meta> 标签设置 referrer 策略。将其放在 <head> 部分:<head> <meta name="referrer" content="no-referrer"> </head>3. 使用 JavaScript可以通过 JavaScript 动态创建一个链接,并设置 rel="noreferrer" 属性:跳转到示例网站这将在新窗口中打开链接,并同时防止发送 Referer 信息。4. 使用链接重定向如果你在服务器上处理跳转,可以通过服务器端的重定向来实现。例如:用户访问你的服务器。服务器处理请求并执行 302 重定向到目标网站,同时设置 Referrer-Policy 头。5. 使用 sandbox 属性(仅限 iframe)如果你在 iframe 中嵌入外部内容,并希望限制 Referer 信息,可以使用 sandbox 属性:<iframe src="https://example.com" sandbox="allow-same-origin allow-scripts"></iframe>
2024年11月15日
6 阅读
0 评论
0 点赞
2024-10-18
LibreSpeed——在本地搭建一台网速测试服务器
LibreSpeed是Github上的一个基于PHP和HTML的开源速度测试服务器项目,该项目可在Web上进行速度测试。平时我们在做网速测试时测的都是公网的速度,如果我们要在内网做测速,或者要测试到云服务器的连接速度,可以在服务器上部署该项目。项目地址:https://github.com/librespeed/speedtestDEMO中科大、南京大学等高校也使用该源码搭建了测速服务器。中科大测速网站:https://test.ustc.edu.cn/南京大学测速网站:https://test.nju.edu.cn/官方介绍没有 Flash、没有 Java、没有 Websocket、没有废话。这是一个用 Javascript 实现的非常轻量级的速度测试,使用了 XMLHttpRequest 和 Web Workers。支持所有现代浏览器:IE11、最新 Edge、最新 Chrome、最新 Firefox、最新 Safari。也适用于移动版本。官方列出的部署要求:如果仅使用测速功能,不进行数据存储,则可以不需要MySQL,只需要Web服务器+PHP环境就行。一个速度相当快的 Apache 2 Web 服务器(也支持 nginx、IIS)PHP 5.4 或更新版本(其他后端也可用)MariaDB 或 MySQL 数据库存储测试结果(可选,也支持 Microsoft SQL Server、PostgreSQL 和 SQLite)安装方法推荐使用Ubuntu系统,首先使用apt一键安装所需的软件包apt update apt install nginx php php-fpm unzip下载并解压源码,确定网站目录mkdir -p /home/wwwroot/ wget -O /home/wwwroot/ https://github.com/librespeed/speedtest/archive/refs/heads/master.zip cd /home/wwwroot && unzip speedtest-master.zip && mv speedtest-master speedtest 新建一个nginx配置文件nano /etc/nginx/conf.d/speedtest.conf #加入以下内容 server { listen 80; server_name 你的域名; root /home/wwwroot/speedtest; index index.html; location / { allow all; } location ~ [^/]\.php(/|$) { try_files $uri =404; fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_index index.php; include fastcgi.conf; fastcgi_read_timeout 300s; } } 使用Ctrl+O写入,并使用Ctrl+X退出修改php配置nano /etc/php/8.3/fpm/pool.d/www.conf #加入以下内容后保存 listen = /run/php/php8.3-fpm.sock 启动nginx和phpsystemctl start nginx systemctl start php-fpm8.3补充源码里包含了多个HTML模板,在examples目录里,这里建议使用example-singleServer-gauges.html这个模板比较好看,模板默认都做了移动端适配。
2024年10月18日
48 阅读
0 评论
0 点赞
2024-08-02
解决seafile在启动webdav并采用nginx反代时无法移动文件的情况
seafile支持webdav的方式来访问文件,但是官方给出的nginx反代语法存在bug,会导致无法在webdav上移动文件,,并出现502错误,现对配置文件做出修改:seafdav.conf按照官方的写法不变:[WEBDAV] # Default is false. Change it to true to enable SeafDAV server. enabled = true port = 8080 # If you deploy seafdav behind nginx/apache, you need to modify "share_name". share_name = /seafdavnginx的配置修改如下: location /seafdav { proxy_pass http://127.0.0.1:8080/seafdav; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 1200s; client_max_body_size 0; if ($destination ~* ^https\:\/\/yourdomain.com(.+)$) { set $destination http://127.0.0.1:8080$1; } access_log /var/log/nginx/seafdav.access.log seafileformat; error_log /var/log/nginx/seafdav.error.log; } location /:dir_browser { proxy_pass http://127.0.0.1:8080/:dir_browser;
2024年08月02日
185 阅读
0 评论
0 点赞
2018-11-24
在CentOS7下搭建私有云存储Seafile服务器
关于私有云存储系统,有基于PHP的OwnCloud,NextCloud等等,然而这些基于PHP的网盘系统,它们的运行效率是远远不及底层基于C语言的seafile,并且在上传大文件时,经常会中断。我个人之前一直是使用NextCloud,在发现Seafile之后,我果断抛弃了它,改用Seafile。Seafile社区版产品特性:1、支持端到端加密技术来保证数据的安全。用户可创建加密数据库,密钥不保存在服务器,所有数据在服务器上均是加密,就算有服务器的root权限也无法读取。2、内核是由C语言编写,运行速度快,并且稳定。3、数据在服务器上被分块存储,支持增量同步。4、支持在线预览mp4电影,支持在线编辑txt、Markdown。安装过程介绍:系统环境操作系统:centos7,不要使用CentOS6,因为涉及到glibc的更新,一不小心可能导致系统崩溃。内存要求:最好是1G以上,因为要用到mysql,如果内存过于低,可能导致mysql进程被系统自动杀死。用到的程序:MySQL/MariaDB,Seafile主程序,nginx(可选)。安装MariaDBSeafile的数据库可以用自行编译的MySQL,这里就不再讲编译MySQL的过程,因为在https://www.zavierlab.com/post/49.html都有说明编译过程。在这里直接使用了yum安装MariaDB。yum -y install mariadb mariadb-server安装完毕后,启动mariadb服务器systemctl start mariadb将mariadb加入开机启动项systemctl enable mariadb默认数据库root密码为空,为了安全应该为mariadb服务器设置root密码。系统会提示输入两次密码,密码不会在命令行中显示,输完直接回车即可。mysqladmin -u root password安装Seafile主程序首先安装依赖包yum -y install epel-release yum -y install wget python-imaging MySQL-python python-memcached python-ldap python-urllib3 python2-pip安装pillow和moviepypip install pillow moviepy安装ffmpeg和ffmpeg-develwget http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm rpm -Uvh nux-dextop-release*rpm yum -y install ffmpeg ffmpeg-devel创建seafile工作目录并下载seafile源码和解压mkdir -p /usr/local/seafile wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_6.2.5_x86-64.tar.gz tar -zxvf seafile-server_6.2.5_x86-64.tar.gz解压后目录如下├── ccnet │ ├── ccnet.sock │ ├── misc │ ├── mykey.peer │ └── seafile.ini ├── conf │ ├── ccnet.conf │ ├── seafdav.conf │ ├── seafile.conf │ ├── seahub_settings.py │ └── seahub_settings.pyc ├── logs │ ├── ccnet.log │ ├── controller.log │ ├── seafile.log │ ├── seahub_django_request.log │ └── seahub.log ├── pids │ ├── ccnet.pid │ └── seaf-server.pid ├── seafile-data │ ├── commits │ ├── fs │ ├── httptemp │ ├── library-template │ ├── storage │ └── tmpfiles ├── seafile-server-6.2.5 │ ├── check_init_admin.py │ ├── reset-admin.sh │ ├── runtime │ ├── seaf-fsck.sh │ ├── seaf-fuse.sh │ ├── seaf-gc.sh │ ├── seafile │ ├── seafile.sh │ ├── seahub │ ├── seahub.sh │ ├── setup-seafile-mysql.py │ ├── setup-seafile-mysql.sh │ ├── setup-seafile.sh │ └── upgrade ├── seafile-server-latest -> seafile-server-6.2.5 └── seahub-data └── avatars执行安装脚本,并回答问题cd seafile-server-latest && ./setup-seafile-mysql.sh What is the name of the server? It will be displayed on the client. 3 - 15 letters or digits #自定义服务器名 [ server name ] seafile What is the ip or domain of the server? For example: www.mycompany.com, 192.168.1.101 #可以是你的服务器IP或者你的域名 [ This server's ip or domain ] Where do you want to put your seafile data? Please use a volume with enough free space #数据目录,这里一般保持默认 [ default "/usr/local/seafile/seafile-data" ] Which port do you want to use for the seafile fileserver? #seafile文件服务器监听端口,一般是默认,有冲突自行更改 [ default "8082" ] ------------------------------------------------------- Please choose a way to initialize seafile databases: ------------------------------------------------------- #1是在mariadb里创建seafile新用户和数据库,2是使用已有的数据库,这里使用的是1 [1] Create new ccnet/seafile/seahub databases [2] Use existing ccnet/seafile/seahub databases [ 1 or 2 ] #数据库地址,一般是本地,保持默认 What is the host of mysql server? [ default "localhost" ] #端口号,保持默认 What is the port of mysql server? [ default "3306" ] #输入root密码(不会显示) What is the password of the mysql root user? [ root password ] verifying password of user root ... done #自定义seafile数据库用户,默认用户名是seafile Enter the name for mysql user of seafile. It would be created if not exists. [ default "seafile" ] #为seafile数据库用户设置密码 Enter the password for mysql user "seafile": [ password for seafile ] verifying password of user seafile ... done #以下三项保持默认即可 Enter the database name for ccnet-server: [ default "ccnet-db" ] Enter the database name for seafile-server: [ default "seafile-db" ] Enter the database name for seahub: [ default "seahub-db" ] #到这里数据库都已经创建完毕,确认无误后按ENTER即可开始安装 --------------------------------- This is your configuration --------------------------------- server name: 你的服务器名 server ip/domain: 你的IP或域名 seafile data dir: /usr/local/seafile/seafile-data fileserver port: 8082 database: create new ccnet database: ccnet-db seafile database: seafile-db seahub database: seahub-db database user: seafile --------------------------------- Press ENTER to continue, or Ctrl-C to abort安装完毕后便是启动seafile进程,为了安全,seafile不能以root身份运行,所以应该先在系统里面创建一个名为seafile的普通用户,并以普通用户的身份运行。useradd -s /sbin/nologin seafile启动seafile以及seahub,首次启动会要求创建管理员帐号,根据提示输入即可。cd /usr/local/seafile/seafile-server-latest sudo -u seafile ./seafile.sh start sudo -u seafile ./seahub.sh start如果配置无误,seafile应该已经成功启动,这时,在浏览器上输入IP或者域名加端口号的格式即可访问。http://你的IP地址:8000因为文件服务器seahub和seafile端口号分别为8000,8082用起来不是很方便,所以可以用Nginx反向代理的形式,并且绑定域名,实现单一端口访问网盘。下面附上参考官方给出的Nginx反向代理的配置。server { listen 80; server_name seafile.yourdomain.com; proxy_set_header X-Forwarded-For $remote_addr; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # used for view/edit office file via Office Online Server client_max_body_size 0; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; } location /media { root /usr/local/seafile/seafile-server-latest/seahub; } }前端使用SSL的配置。后端因为是反代本地,因此不需要SSL。server { listen 443; ssl on; ssl_certificate SSL证书目录; ssl_certificate_key SSL密钥; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; server_name seafile.yourdomain.com; proxy_set_header X-Forwarded-For $remote_addr; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # used for view/edit office file via Office Online Server client_max_body_size 0; access_log /var/log/nginx/seahub.access.log; error_log /var/log/nginx/seahub.error.log; } location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; } location /media { root /usr/local/seafile/seafile-server-latest/seahub; } }修改/usr/local/seafile/conf/ccnet.conf:SERVICE_URL = https://seafile.yourdomain.com修改/usr/local/seafile/conf/seahub_settings.py:FILE_SERVER_ROOT = 'https://yourdomain.com/seafhttp
2018年11月24日
4,469 阅读
0 评论
0 点赞
2018-05-09
Nginx简易反向代理及缓存配置
介绍nginx是一款轻量级的高性能Web服务器,它功能丰富,不但可以用来搭建网站,同时也能用于Web反向代理,负载均衡。反向代理技术也常被用于CDN加速。以下就列出使用Nginx来进行反向代理一个网站的配置模板。服务器配置Nginx可使用编译安装或者通过yum(RedHat系)、apt(Debian系)来安装。编译安装后配置文件在/usr/local/etc/nginx.conf,nginx.conf里面有http字段和server字段,要进行反向代理,可在配置中新建一个如下的server字段。server { listen 80; server_name example1.com; access_log /home/wwwlogs/proxy.log; location / { proxy_pass 反代网站域名; #proxy_cache_key $host$http_user_agent$uri$is_args$args; #缓存设置项,用于生成缓存文件名,仅反向代理时可不开启。 proxy_set_header Host $host; #传递给后端服务器的主机头,默认与server_name相同 proxy_set_header X-Forwarded-For $remote_addr; #将客户端IP地址传递给后端服务器 proxy_cache_valid 200 304 10m; #配置不同响应代码的缓存过期时间 proxy_connect_timeout 10s; #后端服务器响应超时时间 expires 2d; #缓存保存时间 proxy_ignore_headers “Cache-Control” “Expires” “Set-Cookie”; #指定要忽略的后端服务器响应头 } location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$ #指定不缓存文件的后缀名并单独配置 { proxy_pass 反代网站域名; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; } }在nginx.conf中的http段内加入以下配置来对反向代理的缓存进行控制proxy_temp_path /home/nginx/proxy_temp_dir; proxy_cache_path /home/nginx/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=1g; #缓存文件设置 client_body_buffer_size 512k; #设置body缓冲区大小 proxy_connect_timeout 60; #设置后端服务器连接超时时间 proxy_read_timeout 60s; #设置连接成功后,后端服务器响应超时时间 proxy_send_timeout 60s; #设置后端服务器回传数据超时时间 proxy_buffer_size 32k; #限制后端服务器传输头文件大小 proxy_buffers 4 64k; #缓冲区大小配置 proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; #设置单次访问临时文件大小 proxy_cache cache_one;
2018年05月09日
2,001 阅读
0 评论
0 点赞
1
2