1、单配置单域名重定向
网站更换域名,如原nntd.com换gxsan.com
在宝塔建立一个网站nntd.com,纯静态,添加一条重定向
2、国外vps反向代理国内VPS分流非国内,单配置多域名反向
cloudflare免费,但不快,用测速网站测试只有30%的在线率,自己弄个国外vps用NGINX反向自己国内VPS
建立一个网站把你要反向的域名全加入这里(如果ssl不是同一个的话你要分开来建立,或者你把所有的域名添加上去把IP全解释到这vps把ssl申请下来再作分流解释,续签的时候也要作一次),并修改/etc/hosts把你要反向的域名全绑定到你国内的vps的IP上(用这反向分流的配置,这步很重要而且是必须,如是负载后端的方式就不需要),然后你需要一个像dnspod这样的解释提供商,可以设定国外、国内走什么IP
如图上设置后,在配置修改server_name把你要反向的域名全部添加到这里。
我有过一台vps设置完后,刚开始刷出现过301重复重定向,重启几次这样,不理它第二天行了,没时间折腾所以没细调,估计是在域名传递给后端的国内vps的wordpress站群失败所以反复301的问题。
注:如果你要折腾可以考虑开启
3、开启nginx的fast-cache,Bt默认支持的,你只需在nginx.conf添加
1 2 3 4 5 6 |
<pre class="wrap:true lang:default decode:true "> fastcgi_cache_path /dev/shm/nginx-cache levels=1:2 keys_zone=WORDPRESS:30m inactive=32m max_size=64m; fastcgi_temp_path /dev/shm/nginx-temp; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_use_stale error timeout invalid_header http_500; fastcgi_ignore_headers Cache-Control Expires Set-Cookie; fastcgi_cache_min_uses 1; |
你还需再网站的配置文件插入
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<pre class="wrap:true lang:default decode:true "> set $skip_cache 0; if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } if ($request_uri ~* "/login.*|/user.*|/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") { set $skip_cache 1; } if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|w3tc_logged_out|wordpress_no_cache|wordpress_logged_in|wptouch_switch_toggle") { set $skip_cache 1; } |
然后在/www/server/nginx/conf/pathinfo.conf插入
1 2 3 4 5 6 7 8 9 10 |
<pre class="wrap:true lang:default decode:true ">add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; add_header X-Cache "$upstream_cache_status From $host"; fastcgi_cache WORDPRESS; add_header Last-Modified $date_gmt; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; fastcgi_cache_valid 200 301 302 1d; |
为什么选这个文件呢?在多版本php宝塔都会调用这个文件,插入这里不管啥版本都能用。
要注意上面插入的三个地方,先后插入乱了会提示错误,宝塔保存就会检查keys_zone(ssh命令行不会先检查),上文的cache目录是在内存上的(也把塔默认的/tmp/php-cgi-73.sock移动到/dev/shm/),我在一台vps启动nginx和php-fpm有过失败的问题,查日志,提示已经启动,重复启动,但后台不显示已经启动。
4、wordpress站群的域名跳转,我站群一级域名使用的是去掉www,
1 2 3 4 |
server { server_name "~^www\.(.*)$" ; return 301 $scheme://$1$request_uri ; } |
加在配置未见的末尾,不然你修改文件时bt会先修改排前的server_name位置的域名。
5、默认的“禁止访问的文件或目录”不起作用,比如你站点用的w3-total-cache,它默认在网站根目录生成nginx.conf伪静态配置,你要调用它,如你启用了防夸站,你只能放在网站目录下,为安全你必须要禁止直接访问该文件,用Bt默认的“禁止访问的文件或目录”配置加上“\.conf”是无效的,我加上
1 |
<pre class="wrap:true lang:default decode:true "> location ~ \.(conf|ini)$ { return 444; } |
6、我用宝塔稳定版安装在vps上的centos7,它并没删除系统自带的http,这样系统启动会让http占用80端口导致nginx启动失败,先检查httpd服务
1 2 3 4 5 6 7 8 9 |
<pre class="wrap:true lang:default decode:true "> rpm -qa | grep httpd 或 yum list | grep httpd 再用 systemctl stop httpd.service 停掉httpd 然后用rpm -e或yum -erase卸载 yum erase httpd.x86_64 |
7、加装Brotli
安装libbrotli
1 2 3 4 5 6 |
<pre class="wrap:true lang:default decode:true ">cd /www/server git clone https://github.com/bagder/libbrotli cd libbrotli ./autogen.sh ./configure make && make install |
下载ngx_brotli模块及其依赖:
1 2 3 4 5 6 |
<pre class="wrap:true lang:default decode:true ">cd /www/server #下载brotli git clone https://github.com/google/ngx_brotli.git cd ngx_brotli #更新brotli git submodule update --init |
查看nginx -V用来对比之后是否安装了
nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶意解析)
在/www/server/panel/vhost/nginx/0.default.conf 中头部修改为如下代码:
1 2 3 4 5 6 7 8 9 10 11 |
<pre class="wrap:true lang:default decode:true ">server { listen 80 default_server; listen 443 default_server; server_name _; ssl_certificate /www/server/panel/vhost/cert/域名/fullchain.pem; ssl_certificate_key /www/server/panel/vhost/cert/域名/privkey.pem; return 444; index index.html; root /www/server/nginx/html; } |
随便添加个证书即可。访问https//ip就不会再跳到网站。