Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 18,107
» Latest member: Olivierwew
» Forum threads: 67
» Forum posts: 67

Full Statistics

Online Users
There are currently 70 online users.
» 0 Member(s) | 69 Guest(s)
Google

Latest Threads
nginx简单配置多个php服务实例教程
Forum: WEB
Last Post: adahrzgj
11-10-2023, 08:38 AM
» Replies: 0
» Views: 7,316
php修改上传附件大小限制
Forum: WEB
Last Post: adahrzgj
10-19-2023, 02:37 PM
» Replies: 0
» Views: 7,857
Ubuntu 自建安装Nginx+MySQL+PH...
Forum: WEB
Last Post: adahrzgj
10-19-2023, 02:35 PM
» Replies: 0
» Views: 7,371
傻瓜教程: Orac1e的实例如何进入救援模式
Forum: VPS
Last Post: adahrzgj
10-12-2023, 03:46 PM
» Replies: 0
» Views: 8,101
利用 GAE 扩展谷歌永久免费机的月流量
Forum: VPS
Last Post: adahrzgj
10-06-2023, 04:44 PM
» Replies: 0
» Views: 8,251
搞了个DNS解锁,发出来分享一下
Forum: VPS
Last Post: adahrzgj
09-17-2023, 02:44 PM
» Replies: 0
» Views: 8,545
设置itunel连接后自动备份
Forum: 生活
Last Post: adahrzgj
07-10-2023, 07:02 AM
» Replies: 0
» Views: 692
rclone自己申请的账号7天失效的问题
Forum: WEB
Last Post: adahrzgj
04-22-2023, 04:06 PM
» Replies: 0
» Views: 7,009
使用 Shadowrocket Quantumul...
Forum: WEB
Last Post: adahrzgj
04-21-2023, 04:50 AM
» Replies: 0
» Views: 1,900
青龙删除日志
Forum: WEB
Last Post: adahrzgj
04-07-2023, 03:21 PM
» Replies: 0
» Views: 1,405

 
  Docker 备份、恢复及迁移
Posted by: adahrzgj - 08-21-2022, 08:15 AM - Forum: WEB - No Replies


Docker—备份、恢复及迁移
用容器生成镜像

[root@git docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e950a988d058 twang2218/gitlab-ce-zh "/assets/wrapper" 2 hours ago Up 2 hours (healthy) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:2222->22/tcp gitlab-wahaha
[root@git docker]# docker commit e950a988d058 gitalb-zh
sha256:dd61a1ec3cdc782d6076e47afc10a35e19700a9ad56df6630a8c1de1c1c105c3
[root@git docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gitalb-zh latest dd61a1ec3cdc 6 seconds ago 1.72 GB
docker.io/twang2218/gitlab-ce-zh latest 1f71f185271a 9 days ago 1.63 GB

备份:

查看镜像

[root@git docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/twang2218/gitlab-ce-zh latest 1f71f185271a 9 days ago 1.63 GB
docker save -o [tar包真实路径] [镜像名 ](ID也可以)
ocker save -o /opt/docker-gitlab-ce-zh.tar docker.io/twang2218/gitlab-ce-zh

恢复:

docker load -i [tar包真实路径]

docker load -i /opt/docker-gitlab-ce-zh.tar

导出:是根据容器的 ID 进行导出镜像

[root@git docker]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e950a988d058 twang2218/gitlab-ce-zh "/assets/wrapper" 3 hours ago Up 3 hours (healthy) 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:2222->22/tcp gitlab-wahaha
[root@git docker]# docker export e950a988d058 > /opt/gitlab-zh.tar
[root@git docker]# ls -lh /opt/
total 3.1G
-rw------- 1 root root 1.7G Mar 20 02:16 docker-gitlab-ce-zh.tar
-rw-r--r-- 1 root root 1.5G Mar 20 02:38 gitlab-zh.tar

可以看出导出的镜像比备份的镜像小很多,是因为导出的镜像没历史数据,不能回滚

导入:

[root@git docker]# docker import - git-mast < /opt/gitlab-zh.tar
git-mast镜像名(注意中间的 - )

[root@git docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
git-mast latest 6dfab05161f9 14 seconds ago 1.49 GB
docker/gitlab-zh latest aebe317ba2a3 16 minutes ago 1.72 GB
gitalb-zh latest dd61a1ec3cdc 25 minutes ago 1.72 GB
docker.io/twang2218/gitlab-ce-zh latest 1f71f185271a 9 days ago 1.63 GB

注:导出 export 与 保存 save 的区别

(1).export导出的镜像文件大小 小于 save保存的镜像

(2).export 导出(import导入)是根据容器拿到的镜像,再导入时会丢失镜像所有的历史,所以无法进行回滚操作(docker tag <LAYER ID> <IMAGE NAME>);而save保存(load加载)的镜像,没有丢失镜像的历史,可以回滚到之前的层(layer)。(查看方式:docker images --tree)

Print this item

  分享一波10G测速文件
Posted by: adahrzgj - 08-21-2022, 08:14 AM - Forum: WEB - No Replies


刚看到https://hostloc.com/thread-1044724-1-1.html
贴,


所以这里分享一波,如果你手里也有不错的,可以分享

还有1000G的文件,嘻嘻

建议用下面的,speedtest家的,会很快哦~


https://www.leaseweb.com/platform/network
阿姆斯特丹AMS-01数据中心
http://mirror.nl.leaseweb.net/speedtest/10000mb.bin
达拉斯DAL-10数据中心
http://mirror.dal10.us.leaseweb.net/spee...0000mb.bin
旧金山SFO-12数据中心
http://mirror.sfo12.us.leaseweb.net/spee...0000mb.bin
美因河畔法兰克福FRA-10数据中心
http://mirror.de.leaseweb.net/speedtest/10000mb.bin
悉尼SYD-10数据中心
http://mirror.syd10.au.leaseweb.net/spee...0000mb.bin
华盛顿WDC-01数据中心
http://mirror.wdc1.us.leaseweb.net/speed...0000mb.bin
华盛顿WDC-02数据中心
http://mirror.wdc1.us.leaseweb.net/speed...0000mb.bin
hetztner德国(https://speed.hetzner.de/):
https://speed.hetzner.de/10GB.bin
http://proof.ovh.net/files/
ovh法国:
http://proof.ovh.net/files/10Gio.dat
https://www.fdcservers.net/looking-glass
新加坡:
http://lg-sin.fdcservers.net/10GBtest.zip
日本东京:
http://lg-tok.fdcservers.net/10GBtest.zip
香港:
http://lg-hkg.fdcservers.net/10GBtest.zip
亚特兰大:
http://lg-atl.fdcservers.net/10GBtest.zip
芝加哥:
http://lg-chie.fdcservers.net/10GBtest.zip
丹佛:
http://lg-dene.fdcservers.net/10GBtest.zip
休斯顿:
http://lg-hou.fdcservers.net/10GBtest.zip
洛杉矶:
http://lg-lax.fdcservers.net/10GBtest.zip
迈阿密:
http://lg-mia.fdcservers.net/10GBtest.zip
明尼苏达州:
http://lg-minn.fdcservers.net/10GBtest.zip
纽约:
http://lg-nyc.fdcservers.net/10GBtest.zip
西雅图:
http://lg-sea.fdcservers.net/10GBtest.zip
多伦多(加拿大):
http://lg-tor.fdcservers.net/10GBtest.zip
巴西圣保罗:
http://lg-spb.fdcservers.net/10GBtest.zip
荷兰阿姆斯特丹:
http://lg-ams.fdcservers.net/10GBtest.zip
爱尔兰都柏林:
http://lg-dub.fdcservers.net/10GBtest.zip
德国法兰克福:
http://lg-fra.fdcservers.net/10GBtest.zip
芬兰赫尔辛基:
http://lg-hel.fdcservers.net/10GBtest.zip
乌克兰基辅:
http://lg-kie.fdcservers.net/10GBtest.zip
葡萄牙里斯本:
http://lg-lis.fdcservers.net/10GBtest.zip
英国伦敦:
http://lg-lon.fdcservers.net/10GBtest.zip
西班牙马德里:
http://lg-mad.fdcservers.net/10GBtest.zip
法国巴黎:
http://lg-par2.fdcservers.net/10GBtest.zip
保加利亚索非亚
http://lg-sof.fdcservers.net/10GBtest.zip
芬兰斯德哥尔摩:
http://lg-sto.fdcservers.net/10GBtest.zip
奥地利维也纳:
http://lg-vie.fdcservers.net/10GBtest.zip
波兰华沙:
http://lg-war.fdcservers.net/10GBtest.zip
瑞士苏黎世:
http://lg-zur.fdcservers.net/10GBtest.zip
https://www.turnkeyinternet.net/speed-test/
turnkeyinternet加利福尼亚:
http://speedtest-ca.turnkeyinternet.net/10000mb.bin
turnkeyinternet纽约:
http://speedtest-ny.turnkeyinternet.net/10000mb.bin
https://www.hostwinds.com/company/datacenters
hostwinds西雅图:
http://sea-repo.hostwinds.net/tests/10gb.zip
hostwinds达拉斯:
http://dal-repo.hostwinds.net/tests/10gb.zip
hostwinds阿姆斯特丹:
http://ams-repo.hostwinds.net/tests/10gb.zip
http://speedtest.tele2.net/
tele2克罗地亚,萨格勒布
http://zgb-speedtest-1.tele2.net/10GB.zip
http://zgb-speedtest-1.tele2.net/50GB.zip
http://zgb-speedtest-1.tele2.net/100GB.zip
http://zgb-speedtest-1.tele2.net/1000GB.zip
tele2德国,法兰克福
http://fra36-speedtest-1.tele2.net/10GB.zip
http://fra36-speedtest-1.tele2.net/50GB.zip
http://fra36-speedtest-1.tele2.net/100GB.zip
http://fra36-speedtest-1.tele2.net/1000GB.zip
tele2拉脱维亚,里加
http://bks4-speedtest-1.tele2.net/10GB.zip
http://bks4-speedtest-1.tele2.net/50GB.zip
http://bks4-speedtest-1.tele2.net/100GB.zip
http://bks4-speedtest-1.tele2.net/1000GB.zip
tele2立陶宛,维尔纽斯
http://vln038-speedtest-1.tele2.net/10GB.zip
http://vln038-speedtest-1.tele2.net/50GB.zip
http://vln038-speedtest-1.tele2.net/100GB.zip
http://vln038-speedtest-1.tele2.net/1000GB.zip
tele2荷兰,阿姆斯特丹
http://ams-speedtest-1.tele2.net/10GB.zip
http://ams-speedtest-1.tele2.net/50GB.zip
http://ams-speedtest-1.tele2.net/100GB.zip
http://ams-speedtest-1.tele2.net/1000GB.zip
tele2瑞典,哥德堡
http://bck-speedtest-1.tele2.net/10GB.zip
http://bck-speedtest-1.tele2.net/50GB.zip
http://bck-speedtest-1.tele2.net/100GB.zip
http://bck-speedtest-1.tele2.net/1000GB.zip
tele2瑞典,斯德哥尔摩
http://hgd-speedtest-1.tele2.net/10GB.zip
http://hgd-speedtest-1.tele2.net/50GB.zip
http://hgd-speedtest-1.tele2.net/100GB.zip
http://hgd-speedtest-1.tele2.net/1000GB.zip

Print this item

  cdnfly通过改hosts破解授权方法
Posted by: adahrzgj - 08-21-2022, 08:13 AM - Forum: WEB - No Replies


首先用以下源码搭建一个站点,绑定域名auth.cdnfly.cn,注意需要配置伪静态:
https://vkceyugu.cdn.bspapp.com/VKCEYUGU...7ad31c.zip


然后在需要搭建主控的节点上,修改hosts,将 auth.cdnfly.cn 指向刚才的服务器IP

执行以下命令安装主控:
curl http://auth.cdnfly.cn/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es



如果之前安装过官方版,那就只需要改hosts即可。


如果官方有版本更新,可以访问一次update.php,更新版本信息。

Print this item

  acme.sh 更换CA
Posted by: adahrzgj - 08-21-2022, 08:12 AM - Forum: WEB - No Replies


acme.sh --issue -d mjjjd.eu.org -d *.mjjjd.eu.org -w /usr/local/ServerStatus/web
acme.sh --installcert -d mjjjd.eu.org -d *.mjjjd.eu.org --key-file /etc/nginx/ssl/mjjjd.eu.org.key --fullchain-file /etc/nginx/ssl/mjjjd.eu.org.cer --reloadcmd "service nginx reload" --reloadcmd "chown -R www-data /etc/nginx/ssl/"

*******************************************************************************************************************

安装 acme.sh

安装很简单, 一个命令:
curl https://get.acme.sh | sh
普通用户和 root 用户都可以安装使用.
安装过程进行了以下几步:

1) 把 acme.sh 安装到你的 home 目录下:

1
~/.acme.sh/
并创建 一个 bash 的 alias, 方便你的使用: alias acme.sh=~/.acme.sh/acme.sh

2). 自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书.

更高级的安装选项请参考: https://github.com/Neilpang/acme.sh/wiki/How-to-install

安装过程不会污染已有的系统任何功能和文件 , 所有的修改都限制在安装目录中: ~/.acme.sh/

*********************************************************************************************************************

1. 切换CA
当前acme.sh使用的默认CA机构为zeroSSL,通过--set-default-ca命令,可以修改默认的CA机构,该命令使用--server参数来指定CA机构名称。

切换默认CA为Let's Encrypt:

acme.sh --set-default-ca --server letsencrypt

更换默认CA为ZeroSSL:

acme.sh --set-default-ca --server zerossl

2. webroot模式
webroot模式要求在服务器上已经运行了http服务,并且可以通过公网访问,该模式的好处是,你无需在申请证书的过程中停止web服务,因此,该模式也是推荐使用的模式。

使用webroot模式申请证书时,acme.sh会在网站对应域名的webroot目录下生成域名验证文件, 然后通过公网访问之,以验证对域名的所有权。验证完毕后,acme.sh会清除这些临时生成的文件。

申请证书使用--issue命令:

acme.sh --issue -d example.com -d test.com -w /home/webroot

-d参数指定域名,多个域名使用多个-d参数,第一个-d参数指定的域名即证书的主体名称,其它-d参数指定的域名为证书的可选主体名称。

-w参数指定的是域名的webroot目录,以example.com为例,-w参数的值即是http://example.com对应的webroot目录。如果使用多个-d参数同时指定了多个域名,则所有这些域名必须对应同一个webroot目录;另外,当前系统用户必须具有webroot目录的写入权限。

● 常见错误:

a. -w参数指定的路径有误

b. 域名对应的站点无法通过公网访问(防火墙阻断、http服务没有运行等)

出现以上错误,则acme.sh指定的CA将无法下载到acme.sh生成的域名验证文件,并在重试30次之后报出Timeout错误:

Processing, The CA is processing your order, please just wait. (29/30)
example.com:Timeout
c. 另外,如果当前系统用户没有-w参数指定的webroot目录的写入权限,将导致acme.sh无法创建域名验证文件。

● -w参数进阶:

需要进一步说明的时,对于-w参数,其实有着更加准确的解释。

在验证域名的所有权时,具体来说,acme.sh会在网站的webroot目录下创建.well-known目录,然后再在其中生成验证文件。因此,-w参数指定的路径实际为域名之下,/.well-known位置对应的路径。

例如,对于站点:

Example Domain

-w对应的路径为以下链接对应的目录:

http://example.com/.well-known

即acme.sh域名验证的原理是:acme.sh在-w参数指定的路径下创建.well-known文件夹,并在其中生成域名验证文件;然后,acme.sh对应的CA通过访问http://example.com/.well-known链接,到-w参数指定的路径下去寻找域名验证文件。

以下面的nginx配置为例:

server {
listen 80;
server_name example.com;
root /home/site/example;

location /.well-known {
root /home/site/dancen;
}

location ~* .(gif|jpg|jpeg|png|bmp)$ {
expires 90d;
}
}
example.com站点的webroot目录为:

/home/site/example

而location定义的/.well-known位置对应的webroot目录为:

/home/site/dancen

那么,通过webroot模式为站点申请证书时,-w参数指定的路径不是server配置段指定的webroot目录:/home/site/example,而应该是location配置段定义的/.well-known位置对应的webroot目录:/home/site/dancen。

最终,为站点example.com申请证书的命令为:

acme.sh --issue -d example.com -w /home/site/dancen

● 利用.well-known为多个域名同时申请证书

正如前文所述,当使用多个-d参数同时为多个域名申请证书时,要求这些域名必须对应相同的webroot目录。此处再结合.well-known的特性可知,这些域名实际上没有必要对应相同的webroot目录,只需要这些域名之下的/.well-known位置对应的路径相同就可以了。

因此,在同时为多个域名申请证书时,我们可以合理配置使用同一个证书的各个站点的/.well-known位置,令其指向同一目录即可,而不必去修改每个站点的webroot目录为同一路径,从而可以降低这一要求对业务配置的影响。

以下面的nginx配置为例:

server {
listen 80;
server_name example.com;
root /home/site/example;

location /.well-known {
root /home/site/dancen;
}

location ~* .(gif|jpg|jpeg|png|bmp)$ {
expires 90d;
}
}



server {
listen 80;
server_name test.com;
root /home/site/test;

location /.well-known {
root /home/site/dancen;
}

location ~* .(gif|jpg|jpeg|png|bmp)$ {
expires 90d;
}
}
当同时为域名example.com和test.com申请证书时,它们可以使用不同的webroot目录,只需要域名之下的/.well-known位置对应相同的路径即可,为它们申请证书的命令为:

acme.sh --issue -d example.com -d test.com -w /home/site/dancen

3. nginx webroot模式
如果服务器上运行的http服务为nginx,并且当前系统用户具有修改nginx配置的权限,则可以通过nginx模式生成证书。

通过--nginx参数使用nginx模式:

acme.sh --issue --nginx -d example.com -d www.example.com

该命令相比于webroot模式增加了--nginx参数,同时省略了-w参数。该命令会自动修改nginx配置并重新加载之以适配域名的验证要求,所以无需-w参数。另外,acme.sh会在域名验证完毕后自动将nginx配置还原,因此,nginx配置最终并没有被修改。

特殊的情况是acme.sh可能无法识别nginx配置文件所在位置,此时,可以明确指定:

acme.sh --issue -d example.com --nginx /etc/nginx/nginx.conf

4. standalone模式
如果服务器的tcp 80端口空闲可用,则可通过standalone模式生成证书。该模式下,acme.sh 自己运行一个webserver, 临时监听在80 端口, 完成验证:

acme.sh --issue --standalone -d example.com -d www.example.com

如果服务器已经占用了80端口,可以通过--httpport参数使用80以外的端口:

acme.sh --issue --standalone -d example.com -d www.example.com --httpport 88

需要指出的是,standalone模式下,acme.sh会自己运行一个webserver,依赖的是socat,需要提前安装:

yum install socat

5. standalone ssl模式
这是另一个standalone模式,使用了ssl,要求服务器的tcp 443端口空闲可用:

acme.sh --issue --alpn -d example.com -d www.example.com

可以通过--tlsport参数使用443以外的端口:

acme.sh --issue --alpn -d example.com -d www.example.com --tlsport 8443

6. DNS手动模式
webroot模式和standalone模式可以统称为http模式,即证书验证服务器通过http协议下载acme.sh客户端在域名指向的服务器上生成的验证文件来验证域名所有权。

在某些情况下,我们可能无法使用http模式,例如:

> 没有域名所指向的服务器的管理权限。

> 域名使用了CDN并设置了多个源站:由于验证文件只会在其中一个源站上生成,验证服务器将不能确保能够下载到验证文件。

此时,我们可以使用更加传统的DNS模式来生成证书,DNS模式要求用户在指定域名上设置指定的TXT记录值,已验证其对域名的所有权。

使用DNS模式生成证书需要3个步骤:

1). 指定dns模式,并声明已了解如何使用,生成TXT记录值。

acme.sh --issue --dns -d example.com -d www.example.com \

--yes-I-know-dns-manual-mode-enough-go-ahead-please

使用DNS手动模式时,需通过--yes-I-know…参数声明已了解该模式的用法,否则,命令将会提示该模式的参考链接,不会实际执行。

执行命令后,将会获得以下输出:

Add the following txt record:
Domain:_acme-challenge.example.com
Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

Add the following txt record:
Domain:_acme-challenge.www.example.com
Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Please add those txt records to the domains. Waiting for the dns to take effect.
2). 配置DNS记录。

按照上一个步骤中的提示,到DNS服务提供商的控制台,为指定的域名添加指定的TXT记录,并等待一段时间,令DNS修改生效。

3). 生成证书。

回到acme.sh,使用--renew命令生成证书。

acme.sh --renew -d example.com -d www.example.com

需要指出的是,DNS手动模式中生成的域名TXT记录值是一次性的,因此,acme.sh无法在该模式下自动更新证书,当证书过期时,你必须手动重新生成证书。

7. DNS自动模式
DNS自动模式可以使用域名解析商提供的api自动为域名添加txt记录以完成域名所有权验证,不同于DNS手动模式,DNS自动模式支持自动更新证书。

acme.sh目前支持cloudflare,dnspod,aliyun,cloudxns,godaddy以及ovh等数十种解析商的自动集成。

以阿里云为例,DNS自动模式使用步骤如下:

1). 登录DNS提供商控制台,获取账户的api授权ID和密码。

阿里云地址:

https://ram.console.aliyun.com/manage/ak

获取AccessKeyId和AccessKeySecret。

2). 为acme.sh配置系统变量,存储api授权ID和密码。

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"

export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

3). 生成证书。

acme.sh --issue --dns dns_ali -d example.com -d www.example.com

该命令从系统变量中读取aliyun的api授权ID和密码,并通过dns_ali参数指定DNS提供商为阿里云。该命令将通过api自动为指定域名添加txt记录,并在验证完毕后自动移除txt记录。

aliyun的api授权ID和密码将被保存在.acme.sh的账户配置文件中,以供将来自动更新证书时使用,存储位置为:

~/.acme.sh/account.conf

更多DNS提供商的DNS自动模式使用方法请参考:

dnsapi · acmesh-official/acme.sh Wiki · GitHub

8. 生成ECC证书
目前大部分的证书都是使用RSA非对称加密算法,但一些CA,例如letsencryption、zerossl等,已经支持颁发性能更加优良的ECC非对称加密算法证书。

通过—keylength参数申请ECC证书:

acme.sh --issue -w /home/webroot -d example.com -d example1.com --keylength ec-256

--keylength参数指定算法,ec-256表示256位的ecc非对称加密算法,可选的值有:

> ec-256 (prime256v1, "ECDSA P-256")

> ec-384 (secp384r1, "ECDSA P-384")

> ec-521 (secp521r1, "ECDSA P-521", which is not supported by Let's Encrypt yet.)

9. 生成泛域名证书
泛域名证书的生成只适用于DNS验证的方式:

acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf

10. 强制生成证书
如果想在当前证书剩余有效期在30天以上时重新生成证书,需要使用--force参数。

acme.sh --issue --nginx -d example.com -d www.example.com --force

三. 更新证书
默认情况下acme.sh会自动更新即将过期的证书,手动执行更新的方式如下:

acme.sh --renew -d example.com

如果是ecc证书:

acme.sh --renew -d example.com --ecc

acme.sh只会更新有效期不足30天的证书,如果想强制更新,则增加—force参数:

acme.sh --renew -d example.com --force --ecc

停止更新证书:

acme.sh --remove -d example.com [--ecc]

该命令执行之后,指定的证书不会再自动更新,但对应的证书文件并不会被从硬盘上删除。

四. 部署证书
当acme.sh生成证书后,不宜直接将web服务器的证书路径指向证书的生成路径:

~/.acme.sh/[domain]

因为该目录仅供acme.sh内部使用,有可能被修改。正确的做法是将证书文件拷贝至另外的目录。

1. 直接拷贝
可以直接通过拷贝命令直接拷贝证书文件,对应修改web服务器配置即可。

2. 也可以通过--install-cert命令部署
通过acme.sh的--install-cert命令来拷贝证书,并令web服务重新加载配置,需要注意的是,--install-cert命令并不会去修改web服务器的配置,因此,需要提前修改web服务器配置,将证书以及私钥路径指向部署路径,以nginx为例:

acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"
--reloadcmd参数用于重新加载nginx配置。一个小提醒,这里用的是service nginx force-reload,不是service nginx reload。据测试,nginx的reload信号能够重新加载配置,但并不会重新加载证书,所以需要使用force-reload。nginx实际上没有force-reload这一信号,force-reload的实质为stop,然后start,即重启nginx。

示例:

acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.fullchain.cer \
--reloadcmd "/usr/sbin/nginx -s stop && /usr/sbin/nginx"
在示例中,由于nginx没有注册为service,因此直接使用了nginx的停止和启动命令来重启nginx。

需要补充的是,这里指定的参数,包括证书拷贝的目的地,web服务器的重启命令等,都会被acme.sh自动记录下来,存储到对应证书的配置文件中。以证书example.com为例,存储路径为:

~/.acme.sh/example.com/example.com.conf

并且,在将来证书自动更新以后, --install-cert命令将被再次自动调用,以免去手动拷贝证书,以及重导web服务器配置的操作。

五. 查看证书列表
查看已经生成的证书:

acme.sh --list

六. 更新acme.sh
手动更新:

acme.sh --upgrade

开启自动更新:

acme.sh --upgrade --auto-upgrade

关闭自动更新:

acme.sh --upgrade --auto-upgrade 0

七. 查看acme.sh报错
如果运行acme.sh出错,可开启debug或者log。

查看debug:

acme.sh --issue ..... --debug

查看error:

acme.sh --issue ..... --debug 2

生成日志:

acme.sh --issue ..... --log

日志文件路径为:

~/.acme.sh/acme.sh.log
————————————————
版权声明:本文为CSDN博主「Dancen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dancen/article/details/121044863

Print this item

  Nginx配置虚拟主机(多网站)
Posted by: adahrzgj - 08-21-2022, 08:12 AM - Forum: WEB - No Replies


假要你所在的公司由于预算问题,现在只能提供一台服务器,但是有以下几个网站:www.yourmall.com, m.yourmall.com,www.yourcrm.com需要部署,并且你已经根据我们上一篇文章中安装配置了,实现以下需求。

www.yourmall.com是公司的电子商务平台
m.yourmall.com 是公司的电子商务平台子站,用于移动端用户的访问。
www.yourcrm.com 是公司的用户关系管理系统。
现在为以上网站在服务器上规划目录,创建一个目录:/var/sites,为上面三个站点分别创建一个目录:

www.yourmall.com对应创建的目录为: /var/sites/yourmall
m.yourmall.com 对应创建的目录为: /var/sites/m_yourmall
www.yourcrm.com 对应创建的目录为: /var/sites/yourcrm
如下图所示 -

[root@localhost sites]# mkdir /var/sites/yourmall
[root@localhost sites]# mkdir /var/sites/m_yourmall
[root@localhost sites]# mkdir /var/sites/yourcrm
[root@localhost sites]# pwd
/var/sites
[root@localhost sites]# ll
total 0
drwxr-xr-x. 2 root root 6 Apr 28 04:23 m_yourmall
drwxr-xr-x. 2 root root 6 Apr 28 04:23 yourcrm
drwxr-xr-x. 2 root root 6 Apr 28 04:23 yourmall
[root@localhost sites]#
1. 第一个域名/网站配置
打开Nginx的配置文件:/usr/local/nginx/conf/nginx.conf ,并在 http 块下加入以下子块server,如下配置内容所示 -

# vhost for yourmall.com configure.
server {
listen 80;
server_name www.yourmall.com yourmall.com;

#charset koi8-r;

#access_log logs/yourmall.access.log main;

location / {
root /var/sites/yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourmall;
}

location ~ \.php$ {
root /var/sites/yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}
现在,完整的Nginx配置文件:/usr/local/nginx/conf/nginx.conf的内容如下所示 -


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.html;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.html;
# }
#}

# vhost for yourmall.com configure.
server {
listen 80;
server_name www.yourmall.com yourmall.com;

#charset koi8-r;

#access_log logs/yourmall.access.log main;

location / {
root /var/sites/yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourmall;
}

location ~ \.php$ {
root /var/sites/yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}

}
在目录 /var/sites/yourmall 下创建一个文件:index.html用于测试网站的配置情况,其代码如下 -

<!DOCTYPE html>
<html>
<head>
<title>Welcome To Yourmall.com</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>欢迎您访问:Yourmall.com </h1>
<p>这是 Yourmall.com 的首页,仅用于Nginx的虚拟机配置测试演示。</p>

<p>
<a href="http://www.yiibai.com/">yourmall.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
现在,重新加载Nginx配置文件,在加载配置文件之前,最好先测试一下配置文件语法是否正确,使用以下命令来测试 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost sites]#
然后执行重新加载Nginx配置文件 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost sites]#
到了这一步,我们来看看网站 www.yourmall.com 是否配置成功,接下来我们要访问这个域名,看能不能看到我们在上面写入的 index.html 文件中的内容。在测试访问www.yourmall.com 域名之前,我们还要对这个域名进行映射(外网称为解析)。在局域网内的一台Windows计算机上打开文件 C:\Windows\System32\drivers\hosts,在这个文件的最后一行加入以下内容 -

192.168.0.134 www.yourmall.com
192.168.0.134 yourmall.com
注意:在这里,192.168.0.134 是配置Nginx服务器的IP,如果你的服务器不是这个IP,请写上对应的服务器IP。

现在,打开浏览器,访问以下网站域名: www.yourmall.com 或 yourmall.com ,没有错误,应该会看到以下界面 -


就这样,第一个网站的配置完成了!

2. 第二个域名/网站配置
现在,我们来配置第二个网站:m.yourmall.com, 假设 m.yourmall.com 这个网站它是 www.yourmall.com 的二级域名网站,主要用于服务主站 www.yourmall.com 的移动端访问用户。

打开Nginx的配置文件:/usr/local/nginx/conf/nginx.conf ,并在 http 块下加入以下子块server,如下配置内容所示 -

# 手机/移动端网站 vhost for m.yourmall.com configure.
server {
listen 80;
server_name m.yourmall.com;

#charset koi8-r;

#access_log logs/m_yourmall.access.log main;

location / {
root /var/sites/m_yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/m_yourmall;
}

location ~ \.php$ {
root /var/sites/m_yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}
现在,完整的Nginx配置文件:/usr/local/nginx/conf/nginx.conf的内容如下所示 -


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}



# vhost for yourmall.com configure.
server {
listen 80;
server_name www.yourmall.com yourmall.com;

#charset koi8-r;

#access_log logs/yourmall.access.log main;

location / {
root /var/sites/yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourmall;
}

location ~ \.php$ {
root /var/sites/yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}


# 手机/移动端网站 vhost for m.yourmall.com configure.
server {
listen 80;
server_name m.yourmall.com;

#charset koi8-r;

#access_log logs/m_yourmall.access.log main;

location / {
root /var/sites/m_yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/m_yourmall;
}

location ~ \.php$ {
root /var/sites/m_yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}

}
在目录 /var/sites/m_yourmall 下创建一个文件:index.html用于测试网站的配置情况,其代码如下 -

<!DOCTYPE html>
<html>
<head>
<title>Welcome To Yourmall.com</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>欢迎您访问:m.yourmall.com </h1>
<p>这是 Yourmall.com 主站的子域名:<a href="http://www.yiibai.com/">m.yourmall.com</a> ,仅用于Nginx的虚拟机配置测试演示。</p>

<p>
<a href="http://www.yiibai.com/">m.yourmall.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
现在,重新加载Nginx配置文件,在加载配置文件之前,最好先测试一下配置文件语法是否正确,使用以下命令来测试 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost sites]#
然后执行重新加载Nginx配置文件 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost sites]#
到了这一步,我们来看看网站 m.yourmall.com 是否配置成功,接下来我们要访问这个域名,看能不能看到我们在上面写入的 index.html 文件中的内容。在测试访问m.yourmall.com 域名之前,我们还要对这个域名进行映射(外网称为解析)。在局域网内的一台Windows计算机上打开文件 C:\Windows\System32\drivers\hosts,在这个文件的最后一行加入以下内容 -

192.168.0.134 m.yourmall.com
注意:在这里,192.168.0.134 是配置Nginx服务器的IP,如果你的服务器不是这个IP,请写上对应的服务器IP。

现在,打开浏览器,访问以下网站域名: m.yourmall.com 没有错误,应该会看到以下界面 -


就这样,第二个网站(子域名)的配置完成了!

3. 第三个域名/网站配置
接下来,我们来配置第三个网站:www.yourcrm.com, 假设 www.yourcrm.com 这个网站它是一个客户管理系统,主要记录客户信息的管理网站。

注意:配置这个网站与第一个网站类似,只是指定/使用文件目录不太一样。

打开Nginx的配置文件:/usr/local/nginx/conf/nginx.conf ,并在 http 块下加入以下子块server,如下配置内容所示 -

# 客户管理系统 vhost for yourcrm.com configure.
server {
listen 80;
server_name www.yourcrm.com yourcrm.com;

#charset koi8-r;

#access_log logs/yourcrm.access.log main;

location / {
root /var/sites/yourcrm;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourcrm;
}

location ~ \.php$ {
root /var/sites/yourcrm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}
现在,完整的Nginx配置文件:/usr/local/nginx/conf/nginx.conf的内容如下所示 -


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}



# vhost for yourmall.com configure.
server {
listen 80;
server_name www.yourmall.com yourmall.com;

#charset koi8-r;

#access_log logs/yourmall.access.log main;

location / {
root /var/sites/yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourmall;
}

location ~ \.php$ {
root /var/sites/yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}


# 手机/移动端网站 vhost for m.yourmall.com configure.
server {
listen 80;
server_name m.yourmall.com;

#charset koi8-r;

#access_log logs/m_yourmall.access.log main;

location / {
root /var/sites/m_yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/m_yourmall;
}

location ~ \.php$ {
root /var/sites/m_yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}


# 客户管理系统 vhost for yourcrm.com configure.
server {
listen 80;
server_name www.yourcrm.com yourcrm.com;

#charset koi8-r;

#access_log logs/yourcrm.access.log main;

location / {
root /var/sites/yourcrm;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourcrm;
}

location ~ \.php$ {
root /var/sites/yourcrm;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}

}
在目录 /var/sites/yourcrm 下创建一个文件:index.html用于测试网站的配置情况,其代码如下 -

<!DOCTYPE html>
<html>
<head>
<title>Welcome To YourCrm.com</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>欢迎您访问:yourcrm.com </h1>
<p>这是 yourcrm.com 网站的首页 ,仅用于Nginx的虚拟机配置测试演示。</p>

<p>
<a href="http://www.yiibai.com/">yourcrm.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

现在,重新加载Nginx配置文件,在加载配置文件之前,最好先测试一下配置文件语法是否正确,使用以下命令来测试 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost sites]#
然后执行重新加载Nginx配置文件 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost sites]#
到了这一步,我们来看看网站 www.yourcrm.com 是否配置成功,接下来我们要访问这个域名,看能不能看到我们在上面写入的 index.html 文件中的内容。在测试访问www.yourcrm.com 域名之前,我们还要对这个域名进行映射(外网称为解析)。在局域网内的一台Windows计算机上打开文件 C:\Windows\System32\drivers\hosts,在这个文件的最后一行加入以下内容 -

192.168.0.134 www.yourcrm.com
192.168.0.134 yourcrm.com
注意:在这里,192.168.0.134 是配置Nginx服务器的IP,如果你的服务器不是这个IP,请写上对应的服务器IP。

现在,打开浏览器,访问以下网站域名: www.yourcrm.com 或 yourcrm.com ,没有错误,应该会看到以下界面 -


就这样,第三个网站的配置完成了!

4. 优化配置
经过了上面三个网站的配置,相信你可能觉得 Nginx 的配置文件:/usr/local/nginx/conf/nginx.conf 内容有点多了,这还只是最简单的配置(还未包函重写,日志记录等规则),从头看到尾多少有点不太方便,能不能有更好的办法解决这个问题? 当然可以。我们可以把每个网站的配置独立成一个配置文件,然后在主配置文件中使用 include 指令包函进来。

现在来看看怎么修改配置,首先分别创建三个网站的配置文件:

www.yourmall.com -> /usr/local/nginx/conf/vhosts/yourmall.conf
m.yourmall.com -> /usr/local/nginx/conf/vhosts/m_yourmall.conf
www.yourcrm.com -> /usr/local/nginx/conf/vhosts/yourcrm.conf
再将上面配置中对应每个网站的文件包括放入主配置文件。例如,对于文件 /usr/local/nginx/conf/vhosts/yourmall.conf 放置的文件内容如下:

# vhost for yourmall.com configure.
server {
listen 80;
server_name www.yourmall.com yourmall.com;

#charset koi8-r;

#access_log logs/yourmall.access.log main;

location / {
root /var/sites/yourmall;
index index.html index.html;
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/sites/yourmall;
}

location ~ \.php$ {
root /var/sites/yourmall;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}
其它两个网站也同样放入对应配置。

在主配置文件:/usr/local/nginx/conf/nginx.conf 中,包函上述三个文件即可。现在文件:/usr/local/nginx/conf/nginx.conf的内容如下所示 -


#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.html;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}

}

# 网站配置
include /usr/local/nginx/conf/vhosts/yourmall.conf;

include /usr/local/nginx/conf/vhosts/m_yourmall.conf;

include /usr/local/nginx/conf/vhosts/yourcrm.conf;

}
重新加载Nginx配置文件,在加载配置文件之前,最好先测试一下配置文件语法是否正确,使用以下命令来测试 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost sites]#
然后执行重新加载Nginx配置文件 -

[root@localhost sites]# /usr/local/nginx/sbin/nginx -s reload
[root@localhost sites]#
到此,在Nginx上配置虚拟机演示实例就完了。

11人点赞
Nginx


作者:易百教程
链接:https://www.jianshu.com/p/8a4f37198589
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Print this item

  表达式
Posted by: adahrzgj - 08-21-2022, 08:10 AM - Forum: WEB - No Replies


一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$
零和非零开头的数字:^(0|[1-9][0-9]*)$
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$
正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$
有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$
非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$
非负整数:^\d+$ 或 ^[1-9]\d*|0$
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
校验字符的表达式
汉字:^[\u4e00-\u9fa5]{0,}$
英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
长度为3-20的所有字符:^.{3,20}$
由26个英文字母组成的字符串:^[A-Za-z]+$
由26个大写英文字母组成的字符串:^[A-Z]+$
由26个小写英文字母组成的字符串:^[a-z]+$
由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+
禁止输入含有~的字符:[^~]+
三、特殊需求表达式
Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
手机号码:^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$
电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号): ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
日期格式:^\d{4}-\d{1,2}-\d{1,2}
一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
钱的输入格式:
有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$
这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$
一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$
这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧。下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$
必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的:^[0-9]+(.[0-9]{2})?$
这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$
这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
备注:这就是最终结果了,别忘了"+"可以用"*"替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里
xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
中文字符的正则表达式:[\u4e00-\u9fa5]
双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
空白行的正则表达式:\n\s*\r (可以用来删除空白行)
HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? /> ( 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
IPv4地址:((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

Print this item

  轻论坛:Flarum 程序安装指南
Posted by: adahrzgj - 08-21-2022, 08:09 AM - Forum: WEB - No Replies


前言
一直以来,我与 justjavac 共同维护着 Flarum 的中文版本发行。但几年来一直没有写过一篇完整的 Flarum 的安装教程,以至于群里的朋友们遇到安装问题时没有解决方案供参考,给各位带来了不少麻烦,请见谅。

Flarum 英文站: http://flarum.org/Flarum 中文站: http://flarum.org.cn/GitHub: https://github.com/Flarum-Chinese
介绍
环境要求
PHP 5.6+ (mbstring, pdo_mysql, openssl, json, gd, dom, fileinfo)MySQL 5.5+
安装方式
Flarum beta 版本将以 Composer 的方式进行安装,无法通过上传 PHP 代码的传统方式,故安装过程需要登录 SSH 终端。

本文将以 Ubuntu 16.04.3 x64 为例进行。

安装
创建非 root 用户
由于安全原因,不推荐直接在 root 用户下操作,故需先创建一个非 root 用户,并赋予 sudo 权限。

adduser username # 添加用户,替换 username 为你的用户名

# 完成两次密码输入向导
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

# 输入用户信息(允许为空)
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n]
usermod -aG sudo username # 加入 sudo 用户组,替换 username 为你的用户名

su - username # 切换到 username 用户 *

* 提示:切换到 sudo 用户后,命令前加 sudo 将以管理员权限执行。

安装环境准备
sudo apt-get update && sudo apt-get upgrade # 更新包源及系统依赖

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/nginx # 添加 NGINX 源

sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php # 添加 PHP 源

sudo apt-get update # 更新源

sudo apt-get install nginx # 安装 NGINX

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-gd php7.0-dom php7.0-mbstring php7.0-curl php7.0-xml # 安装 PHP 7.0 及所需拓展库

sudo apt-get install mysql-server-5.6 # 安装 MySQL 5.6 并设定 root 用户密码

创建 MySQL 用户及数据库
mysql -u root -p # 登录数据库 root 用户

create user 'username'@'localhost'; # 创建数据库用户,替换 username 为你的用户名

set password for 'username'@'localhost' = password('123456'); # 为用户设置密码

create database flarum; # 创建数据库

grant all privileges on flarum.* to 'username'@'localhost'; # 为用户赋予数据库操作权限

flush privileges; # 刷新配置使权限生效

安装 Composer
curl -sS https://getcomposer.org/installer | php

sudo mv composer.phar /usr/local/bin/composer

composer config -g repo.packagist composer https://packagist.phpcomposer.com # 替换中国镜像源 *

* 可选:如果服务器在中国大陆,可使用 Composer 中国全量镜像 为其加速。

安装 Flarum
mkdir -p /var/www/flarum # 创建网站目录

cd /var/www/flarum # 进入目录

composer create-project flarum/flarum . --stability=beta # 安装 Flarum beta 版本

安装目录必须为空目录,请根据提示完成安装,如遇安装失败可根据报错信息重试。

配置 NGINX
vim /etc/nginx/sites-available/default

配置示例:

server {
listen 80;
server_name example.com;
root /var/www/flarum;
index index.php index.html index.htm;

# security config
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
fastcgi_hide_header X-Powered-By;
server_tokens off;

# gizp config
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types application/atom+xml
application/javascript
application/json
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/svg+xml
image/x-icon
text/css
#text/html -- text/html is gzipped by default by nginx
text/plain
text/xml;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

# php config
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTP_MOD_REWRITE On;
}

# url rewrite
location / { try_files $uri $uri/ /index.php?$query_string; }
location /api { try_files $uri $uri/ /api.php?$query_string; }
location /admin { try_files $uri $uri/ /admin.php?$query_string; }

# expires config
location ~* \.html$ {
expires -1;
}
location ~* \.(?:ico|css|js|gif|bmp|jpe?g|mp4|pdf|mp3|png|svg|ttf|woff|woff2|otf|eot)$ {
access_log off;
expires 30d;
add_header Pragma public;
add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
}

# deny control
location /flarum {
deny all;
return 404;
}
location ~ /assets/.*\.(php)?$ {
deny all;
}

}
* 有关 URL Rewriting 部分参考了 Flarum Documentation

目录权限
此时访问你的网站首页,可以看到安装程序已经正常运行。

但会提示部分目录需要写入权限,否则无法继续完成安装。

可参考以下操作方案:

cd /var/www # 进入网站目录

sudo chown -R username:www-data /var/www/flarum # 更改目录的所有者及所有组 *

* username 为最初创建的非 root 用户,www-data 为 NGINX 及 PHP 进程的默认用户组。

sudo chmod -R g+w,o-rwx flarum/ flarum/assets/ flarum/storage/ # 指定目录权限 *

* g+w: 目录的所有组 (Group) 增加写入权限,o-rwx: 其他用户 (Other) 移除所有权限。

目录权限配置完成后,刷新网页重新进入安装引导。

按照流程填入数据库及管理员信息,即可完成安装。

安装中文语言包
cd /var/www/flarum # 进入网站目录

composer require jsthon/flarum-ext-simplified-chinese # 安装中文语言包拓展

composer dump-autoload --optimize # 优化 Composer 自动加载

* 安装其他 Flarum 拓展插件的操作方法类似。

文末
如果遇到其他问题,可在官方支持论坛发帖。

有关简体中文支持可在 GitHub 中发起 Issue:

https://github.com/Flarum-Chinese/flarum...ed-chinese

Print this item

  破解Emby的IOS客户端(转载备份)
Posted by: adahrzgj - 08-21-2022, 08:09 AM - Forum: WEB - No Replies


破解Emby的IOS客户端(转载备份)
IOS正版Emby使用需要付费,如果你不想付费,可以用小火箭破解Emby
如果你有著名的翻墙软件 Shadowrocket ( 小火箭 ) 且版本号大于 v2.1.62 ,那就可以用来破解 Emby 的iOS 官方客户端
Emby播放客户端: 各大应用商店 搜索”EMBY”下载并安装
打开Shadowrocket的配置 (此处演示为全新安装的默认配置) 的 Shadowrocket 来演示如何破解 Emby。
1.打开 Shadowrocket, 点击”首页’旁边的”配置” , 再点击中间的本地配置文件 default.conf


3.把配置文件拖到最底部, 配置文件里面的默认规则可能与你不一样,不要管这些.没事

4. 复制下面的配置填写到红框空白处,然后不要忘记点保存,三个选一个就行
EmbyPremiere = type=http-response,script-path=https://cdn.jsdelivr.net/gh/aaliyahkqqmbt/3dmmpemby@main/EmbyPremiere.js,pattern=^https?:\/\/mb3admin.com\/admin\/service\/registration\/validateDevice,max-size=131072,requires-body=true,timeout=10,enable=true
——备用(上面不可用时 用下面这个)—-
EmbyPremiere = type=http-response,script-path=https://gitlab.com/iptv-org/embypublic/-/raw/master/Script/EmbyPremiere.js,pattern=^https?:\/\/mb3admin.com\/admin\/service\/registration\/validateDevice,max-size=131072,requires-body=true,timeout=10,enable=true
—-这是之前用过十分好用的——
[Script]
unlock_emby = type=http-response,script-path=https://cdn.jsdelivr.net/gh/YukiCoco/YukiUsefulTools@YukiCoco-patch-1/unlock_emby.js,pattern=^http(s?):\/\/(www\.|)mb3admin\.com\/.*$,max-size=131072,requires-body=true,timeout=10,debug=false,enable=true
[MITM]
ca-passphrase = Shadowrocket
ca-p12 = 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
enable = true
hostname = mb3admin.com,www.mb3admin.com

5. 再点击中间的本地配置文件 default.conf,选择 编辑配置

在手机 设置 -> 通用 -> 关于本机 -> 证书信任设置,找到刚才安装的 Shadowrocket 证书,将其开关打开

回到 Shadowrocket ,上面显示 系统已信任 ,说明我们正确安装并让系统信任我们的了证书,点右上角的√ 保存

回到 HTTPS 解密页面继续点右上角的 √ 保存

首次启动 Shadowrocket 会像系统添加 VPN 配置,点击 允许

打开 Emby 客户端,随便找一部影片来播放,当收到 Shadowrocket 的通知,提示 Emby Premiere 已激活时,说明我们已经破解成功了。由于有效期有 999 天,所以以后即使在没有开 Shadowrocket 的情况下,Emby 依然可以直接播放。如你删掉 Emby 客户端重新安装或者切换到其他 Emby 服务器后,才需要再次开 Shadowrocket 来破解。

Print this item

  青龙APP脚本soy/app合集
Posted by: adahrzgj - 08-21-2022, 08:08 AM - Forum: WEB - No Replies


app脚本
[/url]介绍
羊毛app脚本,作者qq 1056211611
[url=https://gitee.com/soy-tool/app-script#%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E]使用说明
一般都是在脚本里面说明,自行打开脚本可查看
脚本适合shuye,v4,青龙,面板,v2p也可以
v2p不会写重写,所以脚本需要变量都自行抓包添加
完全适配v2p的自行找大佬写
青龙拉库:
ql repo https://gitee.com/soy-tool/app-script "app_|wx_|wy_" "" "axios|md5|axios"
青龙单拉脚本: ql raw 发布的脚本地址
声明:由于青龙拉库会自动添加一个前缀,所以可能会有某些bug
4.讨论tg群:https://t.me/joinchat/8D2_IDN5t0A2ZmM1
5.tg频道:https://t.me/soy_pull
6.QQ群:105579620

Print this item

  青龙面板跑聚看点脚本教程
Posted by: adahrzgj - 08-21-2022, 08:07 AM - Forum: WEB - No Replies


前言:解放双手,挣点小毛。
注意:推荐一个容器运行1-2个账号,账号多了会限制,可以多容器跑
邀请码必填得888金币 我的邀请码 24522947
脚本链接:



主脚本:

ql raw https://raw.githubusercontent.com/KingRa.../wx_jkd.js

定时:0 8-22/3 * * * 默认3个小时运行一次

2021.12.17新增一个脚本



主脚本:
ql raw https://gitee.com/gossh520/script/raw/master/jkdapp.js

定时:0 8-22/3 * * * 默认3个小时运行一次

增加多账户并发运行
此版本变量说明
export jkdck='"xz_jkd_appkey=xxxxxxxx!iOS!5.6.5"'
多账号用@隔开

重要部分:
青龙面板变量填写规则:
[图: 1f941925c7b1.png]
实际填写的规则:
[图: c4ca4238a0b9-2.png]

代码:
变量的值是一样的,但是都需要填写,否则错误!




#单账号示例
export jkdhd='{"openid": "参数1"}'
export jkdck='{"Cookie":"xz_jkd_appkey=参数1"}'
#多账号用@隔开 示例
export jkdhd='{"openid": "参数1"}'@'{"openid": "参数2"}'
export jkdck='{"Cookie":"xz_jkd_appkey=参数1"}'@'{"Cookie":"xz_jkd_appkey=参数2"}'

变量的值是一样的,但是都需要填写,否则错误!

开始步骤:
安卓有些应用市场没有这个软件,需要自己浏览器下载,IOS可以直接搜索到。
引用:
新人专享最高7元现金,可立提微信、下载填写我的邀请码
24522947
再领1000金币
↓↓点击下载领取↓↓。详情链接>>>
http://a.app.qq.com/o/simple.jsp?ctx=163...6436838701
邀请码必填得888金币 我的邀请码 24522947
首先打开小黄鸟,开启抓包模式
安卓在抓包软件上方搜索图标中搜openid,IOS在www.xiaodouzhuan.cn链接上看请求头部的xz_jkd_appkey就可以(注意ios后面的!IOS!5.6.5是不需要的复制的)
[图: 8599070c7e40.png]
运行成功图:
[图: aed5545432ae.png]


Print this item