nginx配置 — 让匹配路径不作为文件目录的一部分

nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。

[root]
语法:root path
默认值:root html
配置段:http、server、location、if

[alias]
语法:alias path
配置段:location

root实例:
location ^~ /t/ {
root /www/root/html/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/t/a.html的文件。
alias实例:

location ^~ /t/ {

alias /www/root/html/new_t/;
}
如果一个请求的URI是/t/a.html时,web服务器将会返回服务器上的/www/root/html/new_t/a.html的文件。注意这里是new_t,因为alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。
注意:

  1. 使用alias时,目录名后面一定要加”/”。
  2. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。
  3. alias只能位于location块中。(root可以不放在location中)

shadowsock一键搭建二

https://www.flyzy2005.com/fan-qiang/shadowsocks/install-shadowsocks-in-one-command/

自己写的一键搭建shadowsocks/搭建shadowsocksR的shell脚本,一键脚本适用Vultr上的和搬瓦工所有机型(CentOS、Ubuntu、Debian),搭建ss服务器支持所有客户端类型,本机你是iOS,Android,Windows,Mac,或者是Linux,搭建ss/ssr都是适用的科学上网方式。一键脚本搭建SS/SSR服务器,绝对没有任何问题,任何问题欢迎留言。一键脚本内容包括一键搭建shadowsocks/一键搭建shadowsocksR+一键开启bbr加速。

录了个视频教程,不想看文字的可以看视频,或者结合起来一起看:搭建ss视频教程。

文章目录
什么是shadowsocks
一键脚本搭建ss/ssr支持系统版本
代理服务器购买
连接远程Linux服务器
一键搭建SS/搭建SSR服务
一键搭建shadowsocks
一键搭建shadowsocksR
一键开启BBR加速
客户端搭建shadowsocks/shadowsockR代理实现科学上网
客户端搭建ss代理
客户端搭建ssr代理
vultr搭建ss视频教程
一键脚本更新日志
什么是shadowsocks
shadowsocks可以指一种SOCKS5的加密传输协议,也可以指基于这种加密协议的各种数据传输包。

shadowsocks实现科学上网原理?shadowsocks正常工作需要服务器端和客户端两端合作实现,首先,客户端(本机)通过ss(shadowsocks)对正常的访问请求进行SOCK5加密,将加密后的访问请求传输给ss服务器端,服务器端接收到客户端的加密请求后,解密得到原始的访问请求,根据请求内容访问指定的网站(例如Google,YouTube,Facebook,instagram等),得到网站的返回结果后,再利用SOCKS5加密并返回给客户端,客户端通过ss解密后得到正常的访问结果,于是就可以实现你直接访问该网站的“假象”。

为什么选择shadowsocks?不限终端(安卓,苹果,Windows,Mac都可用),流量便宜(服务器500G只要15元),方便(一键脚本,不需要专业知识)。

为什么要自己搭建ss/ssr?你也许会觉得买ss服务也很方便,但是你得要考虑以下几个问题。首先,买的ss服务,限制很多,终端可能只能同时在线2个,每个月就一点点流量可能价格却不便宜,有时候还被别人做手脚,流量跑的贼快;其次,别人收钱跑路怎么办?很多这种情况的;更重要的是,如第一个问题中描述的shadowsocks原理,如果有心人做了一点手脚,是可以得到你的访问记录的;而自己搭建ss/ssr服务,一键脚本也就10来分钟就可以搞定。

一键脚本搭建ss/ssr支持系统版本
脚本系统支持:CentOS 6+,Debian 7+,Ubuntu 12+

注:这个脚本支持的系统版本是指ss服务器的版本(都没看过也没关系,不影响搭建),你本机是Windows、Mac、Linux,或者你想用手机端搭建ss/ssr服务器,安卓和苹果,都是可以的。

代理服务器购买
作为跳板的代理服务器推荐Vultr和搬瓦工,一是因为本脚本在这两家的所有VPS都做了测试,二是因为都是老牌VPS服务商,不怕跑路。

推荐你们使用Vultr:https://www.vultr.com,英文不好的可以参考Vultr购买图解步骤,最低月付2.5刀,也是目前博主自用以及运行小站的VPS,月付方便,随时重置。如果想年付一次到位,可以选择搬瓦工:搬瓦工购买与优惠码使用。

对于宽带是电信或者是联通的用户,可以试一下搬瓦工的CN2电信/联通直连线路(季付/半年付/年付),GT线路详情可以参考搬瓦工洛杉矶CN2 GT线路测评。如果想体验最优的GIA线路,也可以尝试搬瓦工CN2 GIA线路(强力推荐,效果爆炸,全程CN2,年付平均下来一个月30元左右,晚上高峰时期线路也不拥堵。2018年5月15日正式启动,搬瓦工洛杉矶CN2 GIA线路测评),当然你也可以直接用Vultr,搬瓦工暂时不支持月付。

Vultr和搬瓦工上的所有机型是绝对可以一键脚本搭建shadowsocks/搭建shadowsocksR+开启bbr加速成功的,任何问题欢迎留言~

连接远程Linux服务器
购买完成后根据Windows通过Xshell连接Linux或者Mac通过Terminal远程连接Linux即可。

你如果身边没有电脑,一定要搞什么手机搭建ss服务器 :symbols: 也是可以的,毕竟一键脚本只需要复制几行脚本命令就行了。iOS用户可以使用Termius这个工具,直接在App Store下载就行。Android没有用过,反正能ssh连接的软件就行~

一键搭建SS/搭建SSR服务
注意,shadowsocks/shadowsocksR这两个只需要搭建一个就可以了!!!!SS与SSR之间的比较一直是各有各的说法,王婆卖瓜自卖自夸。我用的是SS,因为SS的iOS版本比较容易下载,并且被没有觉得ss容易被探查到~

一键搭建shadowsocks
在购买VPS并用Xshell连接上你刚购买的VPS后,你将看到如下图所示的界面:

vutlr-connect-result

如红框中所示,root@vult(root@ubuntu)说明已经连接成功了,之后你只需要在绿色光标处直接复制以下代码就可以了(直接复制即可,如每段代码下方截图中所示)。

1.下载一键搭建ss脚本文件(直接在绿色光标处复制该行命令回车即可,只需要执行一次,卸载ss后也不需要重新下载)

git clone https://github.com/flyzy2005/ss-fly
1
git clone https://github.com/flyzy2005/ss-fly
shadowsocks-ss-fly-clone

如果提示bash: git: command not found,则先安装git:

Centos执行这个: yum -y install git
Ubuntu/Debian执行这个: apt-get -y install git
1
2
Centos执行这个: yum -y install git
Ubuntu/Debian执行这个: apt-get -y install git
2.运行搭建ss脚本代码

ss-fly/ss-fly.sh -i flyzy2005.com 1024
1
ss-fly/ss-fly.sh -i flyzy2005.com 1024
其中flyzy2005.com换成你要设置的shadowsocks的密码即可(这个flyzy2005.com就是你ss的密码了,是需要填在客户端的密码那一栏的),密码随便设置,最好只包含字母+数字,一些特殊字符可能会导致冲突。而第二个参数1024是端口号,也可以不加,不加默认是1024~(举个例子,脚本命令可以是ss-fly/ss-fly.sh -i qwerasd,也可以是ss-fly/ss-fly.sh -i qwerasd 8585,后者指定了服务器端口为8585,前者则是默认的端口号1024,两个命令设置的ss密码都是qwerasd):

shadowsocks-install

界面如下就表示一键搭建ss成功了:

ss-fly-success-new

注:如果需要改密码或者改端口,只需要重新再执行一次搭建ss脚本代码就可以了,或者修改/etc/shadowsocks.json这个配置文件。

3.相关ss操作

修改配置文件:vim /etc/shadowsocks.json
停止ss服务:ssserver -c /etc/shadowsocks.json -d stop
启动ss服务:ssserver -c /etc/shadowsocks.json -d start
重启ss服务:ssserver -c /etc/shadowsocks.json -d restart
1
2
3
4
修改配置文件:vim /etc/shadowsocks.json
停止ss服务:ssserver -c /etc/shadowsocks.json -d stop
启动ss服务:ssserver -c /etc/shadowsocks.json -d start
重启ss服务:ssserver -c /etc/shadowsocks.json -d restart
4.卸载ss服务

ss-fly/ss-fly.sh -uninstall
1
ss-fly/ss-fly.sh -uninstall

一键搭建shadowsocksR
再次提醒,如果安装了SS,就不需要再安装SSR了,如果要改装SSR,请按照上一部分内容的教程先卸载SS!!!

1.下载一键搭建ssr脚本(只需要执行一次,卸载ssr后也不需要重新执行)

git clone https://github.com/flyzy2005/ss-fly,此步骤与一键搭建ss一致,可以参考:下载脚本

2.运行搭建ssr脚本代码

ss-fly/ss-fly.sh -ssr
1
ss-fly/ss-fly.sh -ssr
ss-fly-insall-ssr

3.输入对应的参数

执行完上述的脚本代码后,会进入到输入参数的界面,包括服务器端口,密码,加密方式,协议,混淆。可以直接输入回车选择默认值,也可以输入相应的值选择对应的选项:

ss-fly-ssr-options

全部选择结束后,会看到如下界面,就说明搭建ssr成功了:

Congratulations, ShadowsocksR server install completed!
Your Server IP :你的服务器ip
Your Server Port :你的端口
Your Password :你的密码
Your Protocol :你的协议
Your obfs :你的混淆
Your Encryption Method:your_encryption_method

Welcome to visit:https://shadowsocks.be/9.html
Enjoy it!
1
2
3
4
5
6
7
8
9
10
Congratulations, ShadowsocksR server install completed!
Your Server IP :你的服务器ip
Your Server Port :你的端口
Your Password :你的密码
Your Protocol :你的协议
Your obfs :你的混淆
Your Encryption Method:your_encryption_method

Welcome to visit:https://shadowsocks.be/9.html
Enjoy it!
4.相关操作ssr命令

启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status

配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
代码安装目录:/usr/local/shadowsocks
1
2
3
4
5
6
7
8
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status

配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
代码安装目录:/usr/local/shadowsocks
5.卸载ssr服务

./shadowsocksR.sh uninstall
1
./shadowsocksR.sh uninstall

一键开启BBR加速
BBR是Google开源的一套内核加速算法,可以让你搭建的shadowsocks/shadowsocksR速度上一个台阶,本一键搭建ss/ssr脚本支持一键升级最新版本的内核并开启BBR加速。

BBR支持4.9以上的,如果低于这个版本则会自动下载最新内容版本的内核后开启BBR加速并重启,如果高于4.9以上则自动开启BBR加速,执行如下脚本命令即可自动开启BBR加速:

ss-fly/ss-fly.sh -bbr
1
ss-fly/ss-fly.sh -bbr
ss-fly-bbr-success-new

装完后需要重启系统,输入y即可立即重启,或者之后输入reboot命令重启。

判断BBR加速有没有开启成功。输入以下命令:

sysctl net.ipv4.tcp_available_congestion_control
1
sysctl net.ipv4.tcp_available_congestion_control
如果返回值为:

net.ipv4.tcp_available_congestion_control = bbr cubic reno
1
net.ipv4.tcp_available_congestion_control = bbr cubic reno
后面有bbr,则说明已经开启成功了。

客户端搭建shadowsocks/shadowsockR代理实现科学上网
客户端搭建ss代理
各种客户端版本下载地址:各版本shadowsocks客户端下载地址

以Windows为例(shadowsocks电脑版(windows)客户端配置教程):

shadowsocks-pc-windows

在状态栏右击shadowsocks,勾选开机启动和启动系统代理,在系统代理模式中选择PAC模式,服务器->编辑服务器,一键安装shadowsocks的脚本默认服务器端口是1024,加密方式是aes-256-cfb,密码是你设置的密码,ip是你自己的VPS ip,保存即可~

PAC模式是指国内可以访问的站点直接访问,不能直接访问的再走shadowsocks代理~

OK!一键脚本搭建shadowsocks完毕!科学上网吧,兄弟!Google

客户端搭建ssr代理
各种客户端版本下载地址:各版本SS客户端&SSR客户端官方下载地址

以Windows为例:

ssr-pc-windows-config

在状态栏右击shadowsocksR,在系统代理模式中选择PAC模式,再左击两次状态栏的图标打开编辑服务器界面,如上图所示,按照自己的服务器配置填充内容,保存即可~

PAC模式是指国内可以访问的站点直接访问,不能直接访问的再走shadowsocksR代理~

OK!一键脚本搭建shadowsocksR完毕!科学上网吧,兄弟!Google

vultr搭建ss视频教程
应读者要求录了个视频教程,如果你觉得这些文字还不够生动,不够清楚的话,可以看一下视频教程。

视频获取方式:关注微信公众号flyzy小站,发送视频即可获得。

flyzy小站

shadowsock开户BBR提速

使用方法
使用root用户登录,运行以下命令:
wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
(已在git上fork)
https://gitee.com/89718964/firstosgit/tree/master/ss
复制代码
输入命令后,回车,会提示你按任意键继续安装。

重要提示:安装过程中,看着走不动其实是在下载东西,不要按任何键,否则最后会安装不成功。 安装按完成后会提示你输入Y重启,输入Y回车即可。如果你在安装过程中按了回车键,最后手动重启下服务器也可以。

重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:
uname -r
复制代码
查看内核版本,含有 4.1x 就表示 OK 了
sysctl net.ipv4.tcp_available_congestion_control
复制代码
返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
sysctl net.ipv4.tcp_congestion_control
复制代码
返回值一般为:
net.ipv4.tcp_congestion_control = bbr
sysctl net.core.default_qdisc
复制代码
返回值一般为:
net.core.default_qdisc = fq
lsmod | grep bbr
复制代码
返回值有 tcp_bbr 模块即说明bbr已启动。

内核升级方法
如果是 CentOS 系统,执行如下命令即可升级内核:
yum –enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
复制代码
CentOS 6 的话,执行命令:
sed -i ‘s/^default=.*/default=0/g’ /boot/grub/grub.conf
复制代码
CentOS 7 的话,执行命令:
grub2-set-default 0
复制代码
如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。
去这里下载最新版的内核 deb 安装包。
如果系统是 64 位,则下载 amd64 的 linux-image 中含有 generic 这个 deb 包;
如果系统是 32 位,则下载 i386 的 linux-image 中含有 generic 这个 deb 包;
安装的命令如下(以最新版的 64 位 4.12.4 举例而已,请替换为下载好的 deb 包):
dpkg -i linux-image-4.12.4-041204-generic_4.12.4-041204.201707271932_amd64.deb
复制代码
安装完成后,再执行命令:
/usr/sbin/update-grub
复制代码
最后,重启 VPS 即可。

特别说明
1、如果你使用的是 Google Cloud Platform (GCP)更换内核,有时会遇到重启后,整个磁盘变为只读的情况。只需执行以下命令即可恢复:
mount -o remount rw /
复制代码
2、如果你使用的是 Linode ,那么无需更换内核,只需修改配置即可开启 BBR:
sed -i ‘/net.core.default_qdisc/d’ /etc/sysctl.conf
sed -i ‘/net.ipv4.tcp_congestion_control/d’ /etc/sysctl.conf
echo “net.core.default_qdisc = fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control = bbr” >> /etc/sysctl.conf
sysctl -p
复制代码

shadowsock一键搭建一/多用户/限速限流

参考:https://www.bbaaz.com/thread-23-1-1.html

输入下面指令即可开始安装。
wget -N –no-check-certificate https://makeai.cn/bash/ssrmu.sh && chmod +x ssrmu.sh && bash ssrmu.sh
https://gitee.com/89718964/firstosgit/tree/master/ss
复制代码
如果提示-bash: wget: command not found,请参考:https://www.bbaaz.com/thread-98-1-1.html

下载运行后会提示你输入数字来选择要做什么。

输入 1 ,就会开始安装ShadowsocksR服务端,并且会提示你输入Shadowsocks的 端口/密码/加密方式/ 协议/混淆(混淆和协议是通过输入数字选择的) 等参数来添加第一个用户。

注意:用户名不支持中文,如果输入中文会一直保存下去!
请输入要设置的用户 用户名(请勿重复, 用于区分, 不支持中文, 会报错 !)
(默认: bbaaz):bbaz

——————————————————————————————
用户名 : bbaaz
——————————————————————————————

请输入要设置的用户 端口(请勿重复, 用于区分)
(默认: 6899):6899

——————————————————————————————
端口 : 6899
——————————————————————————————

请输入要设置的用户 密码
(默认: bbaaz.com):bbaaz.com

——————————————————————————————
密码 : bbaaz.com
——————————————————————————————

请选择要设置的用户 加密方式
1. none
[注意] 如果使用 auth_chain_* 系列协议,建议加密方式选择 none (该系列协议自带 RC4 加密),混淆随意

  1. rc4
  2. rc4-md5
  3. rc4-md5-6

  4. aes-128-ctr

  5. aes-192-ctr
  6. aes-256-ctr

  7. aes-128-cfb

  8. aes-192-cfb

    1. aes-256-cfb

    2. aes-128-cfb8

    3. aes-192-cfb8
    4. aes-256-cfb8

    5. salsa20

    6. chacha20
    7. chacha20-ietf
      [注意] salsa20/chacha20-*系列加密方式,需要额外安装依赖 libsodium ,否则会无法启动ShadowsocksR !

(默认: 5. aes-128-ctr):5

——————————————————————————————
加密 : aes-128-ctr
——————————————————————————————

请选择要设置的用户 协议插件
1. origin
2. auth_sha1_v4
3. auth_aes128_md5
4. auth_aes128_sha1
5. auth_chain_a
6. auth_chain_b
[注意] 如果使用 auth_chain_* 系列协议,建议加密方式选择 none (该系列协议自带 RC4 加密),混淆随意

(默认: 2. auth_sha1_v4):2

——————————————————————————————
协议 : auth_sha1_v4
——————————————————————————————

是否设置 协议插件兼容原版(_compatible)?[Y/n]y

请选择要设置的用户 混淆插件
1. plain
2. http_simple
3. http_post
4. random_head
5. tls1.2_ticket_auth
[注意] 如果使用 ShadowsocksR 代理游戏,建议选择 混淆兼容原版或 plain 混淆,然后客户端选择 plain,否则会增加延迟 !
另外, 如果你选择了 tls1.2_ticket_auth,那么客户端可以选择 tls1.2_ticket_fastauth,这样即能伪装特征 又不会增加延迟 !

(默认: 5. tls1.2_ticket_auth):5

——————————————————————————————
复制代码
同时最后也会提示是否设置 混淆 兼容原版(也就是使用原版SS也能链接),不懂 直接回车 或 输入 y。(协议不在兼容原版)
注意:关于限制设备数数,这个协议必须是非原版并且不兼容原版才有效,也就是必须SSR客户端使用协议的情况下,才有效!
不输入一路回车就是 默认参数:
用户 : bbaaz
端口 : 6899
密码 : bbaaz.com
加密 : aes-128-ctr
协议 : auth_sha1_v4_compatible
混淆 : tls1.2_ticket_auth_compatible
设备数限制: 0(无限)
单线程限速: 0 KB/S (不限速)
端口总限速: 0 KB/S (不限速)
禁止的端口 : 无限制
用户总流量 : 819.21 TB
复制代码
如果安装过程没有出错,那么最后就会提示:
############################################################
用户 [bbaaz] 的配置信息:

I P : xxx.xxx.xxx.xxx
端口 : 6899
密码 : bbaaz.com
加密 : aes-128-ctr
协议 : auth_sha1_v4_compatible
混淆 : tls1.2_ticket_auth_compatible
设备数限制: X
单线程限速: XXX KB/S
端口总限速: XXX KB/S
禁止的端口 : 无限制

已使用流量 : 上传: XXX KB + 下载: XXX MB = XXX MB
剩余的流量 : XXX TB
用户总流量 : XXX TB

SS链接: ss://xxxxxxxxxxxxx
SS二维码: http://pan.baidu.com/share/qrcode?w=300&h=300&url=ss://xxxxxxxxxxxxx
SSR链接: ssr://xxxxxxxxxxxxx
SSR二维码: http://pan.baidu.com/share/qrcode?w=300&h=300&url=ssr://xxxxxxxxxxxxx

提示:
在浏览器中,打开二维码链接,就可以看到二维码图片。
协议和混淆后面的[ _compatible ],指的是 兼容原版协议/混淆。

############################################################
复制代码
SS/SSR链接(格式: ss://XXXXXXX ,很长),可以从剪辑版导入Shadowsocks客户端,不懂的话看下面二维码。
SS/SSR二维码,复制后面的链接在浏览器打开,就会显示一个二维码的图片,可以用Shadowsocks客户端扫描二维码来添加。

ShadowsocksR客户端和APP下载以及使用教程:http://www.bbaaz.com/thread-20-1-1.html

使用说明
运行脚本,
bash ssrmu.sh

还有一个 运行参数,是用于所有用户流量清零的

bash ssrmu.sh clearall

不过不需要管这个,可以通过脚本自动化的设置 crontab 定时运行脚本

复制代码
输入对应的数字来执行相应的命令。
ShadowsocksR MuJSON一键管理脚本 [vX.X.X]
—- dary | bbaaz.com/ss-jc60 —-

  1. 安装 ShadowsocksR
  2. 更新 ShadowsocksR
  3. 卸载 ShadowsocksR
  4. 安装 libsodium(chacha20)
    ————————————
  5. 查看 账号信息
  6. 显示 连接信息
  7. 设置 用户配置
  8. 手动 修改配置
  9. 清零 已用流量
    ————————————

    1. 启动 ShadowsocksR
    2. 停止 ShadowsocksR
    3. 重启 ShadowsocksR
    4. 查看 ShadowsocksR 日志
      ————————————
    5. 其他功能
    6. 升级脚本

当前状态: 已安装 并 已启动

请输入数字 [1-15]:
复制代码
注意:添加/删除/修改 用户配置后,无需重启ShadowsocksR服务端,ShadowsocksR服务端会定时读取数据库文件内的信息,不过修改 用户配置后,可能要等个十几秒才能应用最新的配置(因为ShadowsocksR不是实时读取数据库的,所以有间隔时间)。

文件位置
安装目录:/usr/local/shadowsocksr
配置文件:/usr/local/shadowsocksr/user-config.json
数据文件:/usr/local/shadowsocksr/mudb.json

注意:ShadowsocksR服务端不会实时的把流量数据写入 数据库文件,所以脚本读取流量信息也不是实时的!

其他说明
ShadowsocksR 安装后,自动设置为 系统服务,所以支持使用服务来启动/停止等操作,同时支持开机启动。

启动 ShadowsocksR:service ssrmu start
停止 ShadowsocksR:service ssrmu stop
重启 ShadowsocksR:service ssrmu restart
查看 ShadowsocksR状态:service ssrmu status