Welcome to nginx!nginx+nginx+litespeed+wordpress的问题

N台vps作前端,安装Nginx使用proxy_cache到一台安装nginx+litespeed+wordpressvps 内存256M的4个网站

前端nginx站点conf配置,部分内容还在检查中,

 

 

   

server {
    listen 80;
        server_name www.baidu.com baidu.com;
        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_pass_header Set-Cookie;
        proxy_set_header Accept-Encoding ''; //网站有时访问变空白,加上这个让后端不要返回压缩

#让网址自动加www
        if ($host ~* ^([a-z0-9]+\.com)$) {
            set $host_with_www www.$1;
            rewrite ^(.*)$
            http://$host_with_www$1 permanent;
        }

        client_max_body_size 8m;

        set $wordpress_auth "";
        if ($http_cookie ~* "wordpress_logged_in_[^=]*=([^%]+)%7C") {
            set $wordpress_auth wordpress_logged_in_$1;
        }

        set $cache_key $scheme$host$uri$is_args$args;

   #wp-admin|wp-login.php直接pass 

   location ~* ^/(wp-admin|wp-login.php)
{
            proxy_pass http://to;
        }

#设置静态文件过期时间,设置23小时主要是为了让宇宙访问都本地缓存久点
location ~ .*\.(avi|bz2?|css|gif|ttf|woff|gz|ico|jpe?g|js|mp3|mpe?g|ogg|png|rar|svg|zip)$ {
              proxy_pass http://to;
expires 23h; 
proxy_cache main;
#            proxy_cache_key $cache_key;
proxy_cache_valid 200 301 302 304 1d;
proxy_cache_valid any 5m;
      access_log        off;
}
location / {
        #   if (!-f $request_filename) {
              proxy_pass http://to;
        #      break;
        #   }

#上面的三个#符号,作为前端不要加,我一个wordpress使用cos-html-cache插件出现Welcome to nginx前期我拜读的文章部分说是检查 proxy_cache但我使用后检查的目录文件

#         if ($request_uri ~* "\.(ico|css|js|gif|jpe?g|png)\?[0-9]+$") {
#                expires 1d;
#                break;
#          }

#上面这段也可以放这里,是规范部分文件带有”js?453453453”让它也能有过期时间,但上面已经有了所以我注释掉
            proxy_cache main;
            proxy_cache_key $cache_key;
proxy_cache_valid 200 302 17h;
proxy_cache_valid 301 304 1d;
proxy_cache_valid any 5m;
            proxy_cache_use_stale error
                                  timeout
                                  invalid_header
                                  http_500
                                  http_502
                                  http_504
                                  http_404;
            proxy_cache_bypass $wordpress_auth; # Do not cache the response.
            proxy_no_cache $wordpress_auth; # Do not serve response from cache.
        }

location ~ /\.ht {
        deny  all;
    }
    }

后端nginx+litespeed运行4个wordpress,为了减少conf的数量,我的内容让一个文件直接proxy到litespeed

还是使用80端口共享的方法,litespeed运行在127.0.0.1:80然后nginx的网站配置如下:

 

   

server {
    listen ip:80; ##你的公网IP
        server_name ~^(www\.)?(.+)$;
        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_pass_header Set-Cookie;
proxy_set_header Accept-Encoding '';
        if ($host ~* ^([a-z0-9]+\.com)$) {
            set $host_with_www www.$1;
            rewrite ^(.*)$
            http://$host_with_www$1 permanent;
        }

        client_max_body_size 8m;

        set $wordpress_auth "";
        if ($http_cookie ~* "wordpress_logged_in_[^=]*=([^%]+)%7C") {
            set $wordpress_auth wordpress_logged_in_$1;
        }

        set $cache_key $scheme$host$uri$is_args$args;

        location ~* ^/(wp-admin|wp-login.php)
{
            proxy_pass http://127.0.0.1:80;
        }

location ~ .*\.(avi|bz2?|css|gif|ttf|woff|gz|ico|jpe?g|js|mp3|mpe?g|ogg|png|rar|svg|zip)$ {
              proxy_pass http://127.0.0.1:80;
expires 23h; 
proxy_cache main;
#            proxy_cache_key $cache_key;
proxy_cache_valid 200 301 302 1d;
#proxy_cache_valid 301 1d;
proxy_cache_valid any 1m;
      access_log        off;
}
location / {
#root   /home/wwwroot/$2/html; 这个没作深入检查了,使用和不使用没作深入毕竟我四个wordpress使用cache插件不一样,我尝试过加出现过$2变量不工作。

#这里和前端的conf不同,可以使用,但要注意
           if (!-f $request_filename) {
              proxy_pass http://127.0.0.1:80;
              break;
           }
#         if ($request_uri ~* "\.(avi|bz2?|css|gif|woff|gz|ico|jpe?g|js|mp3|mpe?g|ogg|png|rar|svg|zip)\?[0-9]+$") {
#      access_log        off; 
#              expires 1d;
#                break;
#          }
            proxy_cache main;
            proxy_cache_key $cache_key;
proxy_cache_valid 200 302 17h;
proxy_cache_valid 301 1d;
proxy_cache_valid any 2m; 
            proxy_cache_use_stale error
                                  timeout
                                  invalid_header
                                  http_500
                                  http_502
                                  http_504
                                  http_404;
            proxy_cache_bypass $wordpress_auth; # Do not cache the response.
            proxy_no_cache $wordpress_auth; # Do not serve response from cache.
        }
location ~ /\.ht {
        deny  all;
    }
    }

.........................................................................................................................................

为什么会有上面的配置?

主要是因为购买了好几个国家的vps,硬件和国内访问的速度有各有千秋,而且我又不想每个vps安装一个wordpress,这样加重了维护的时间,所以我把wordpress全部安装在一个vps上,然后让每个wordpress网站都能有一个独立IP,所以使用了nginx的proxy来实现。那样好处多,但也浪费钱,还有你跑wordpress的vps最好稍微要硬件好点,前端的vps国内链接速度快点,后端访问不行的话,前端互补了这个问题,

我的后端是一台256M的vps,如果我同时维护wordpress的时候litespeed会timeout主要是因为发布内容时我的一个线程lsphp5内存占用51m,采集使用两线都100多了,不卡死也慢死,所以我不会同时多线程采集内容。

以上的配置,没经过任何测试,只是用来跑跑每天10个IP的站点,请各位看官,多提建议。还有就是Mysql的问题,这个还没作优化,等有空再去研究了。

去打赏

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

正在跳转到PayPal...

Author: 飞翔线