Any Nginx / WordPress Experts here?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Validus
    Confirmed User
    • Jul 2001
    • 4012

    #1

    Any Nginx / WordPress Experts here?

    We're having some nasty issues on our Nignx / WordPress setup. I'm getting to a place of panic because revenue is being impacted, affiliates are really upset and started to pull traffic - it's really impacting us.

    I just need someone who knows this type of setup inside and out to look at it and provide some feedback. We can then pass that on to the hosting company - maybe help that way.

    Any pros that can be recommended?
  • blackmonsters
    Making PHP work
    • Nov 2002
    • 20958

    #2
    Originally posted by Validus
    We're having some nasty issues on our Nignx / WordPress setup. I'm getting to a place of panic because revenue is being impacted, affiliates are really upset and started to pull traffic - it's really impacting us.

    I just need someone who knows this type of setup inside and out to look at it and provide some feedback. We can then pass that on to the hosting company - maybe help that way.

    Any pros that can be recommended?
    Please contact me on skype (econfirmpro) to discuss this.

    Thanks
    Free Open Source Live Aggregated Cams Script (FOSLACS)

    Comment

    • Klen
      • Aug 2006
      • 32235

      #3
      I gonna guess how you have issue with url rewrites, so yes this is hosting issue so your host should resolve it.

      Comment

      • myleene
        Confirmed User
        • Oct 2013
        • 906

        #4
        I can take a look. Contact me.

        Comment

        • Brad Mitchell
          Confirmed User
          • Nov 2001
          • 9813

          #5
          If you ever want unmanaged hosting with optional support when you need it, please consider us in the future.

          https://cs.mojohost.com/cart.php?gid=23

          Plans starting at $10, support starting at $29. Best of luck - if you're still in a bind tomorrow during the day EST send me an email and I'll make a tech available to you.

          Cheers,

          Brad
          President at MojoHost | brad at mojohost dot com | Skype MojoHostBrad
          71 industry awards for hosting and professional excellence since 1999

          Comment

          • Validus
            Confirmed User
            • Jul 2001
            • 4012

            #6
            Originally posted by Brad Mitchell
            If you ever want unmanaged hosting with optional support when you need it, please consider us in the future.

            https://cs.mojohost.com/cart.php?gid=23

            Plans starting at $10, support starting at $29. Best of luck - if you're still in a bind tomorrow during the day EST send me an email and I'll make a tech available to you.

            Cheers,

            Brad
            Hi Brad, pretty happy where are at right now. Just having these massive issues with Nginx now and I don't think an unmanaged solution would be a good idea


            Originally posted by myleene
            I can take a look. Contact me.
            Will do. Thank you!


            Originally posted by KlenTelaris
            I gonna guess how you have issue with url rewrites, so yes this is hosting issue so your host should resolve it.
            Maybe. It's a mess. We have a production site, say example.com and we have a test site beta.example.com. Since the change, somewhat randomly, the production site started linking to the test site. We password protected beta.example.com to ensure users don't end up in our test environment, but now real users are getting the username / password prompt.

            The hosting company thought it was the W3 Total Cache plugin, so we disabled it on both sites, but still same issue.


            Originally posted by blackmonsters
            Please contact me on skype (econfirmpro) to discuss this.

            Thanks
            Thanks! Will do.

            Comment

            • Klen
              • Aug 2006
              • 32235

              #7
              Originally posted by Validus



              Maybe. It's a mess. We have a production site, say example.com and we have a test site beta.example.com. Since the change, somewhat randomly, the production site started linking to the test site. We password protected beta.example.com to ensure users don't end up in our test environment, but now real users are getting the username / password prompt.
              You definitely have problem with URL rewrites :D I suggest you to google for "convert apache regex to nginx" which automatically convert apache htaccess content to nginx regex. If it does not work with first converter tool , try with second. And also manually check converted content as well.

              Comment

              • Brad Mitchell
                Confirmed User
                • Nov 2001
                • 9813

                #8
                If you're happy where you're at then by all means stay there. We sell mostly fully managed solutions, though are recently marketing unmanaged as well. If there is anything I can do to help, please don't hesitate to contact me if you get stuck. I would expect that this is something any managed host could help you with.

                Thank you

                Brad
                President at MojoHost | brad at mojohost dot com | Skype MojoHostBrad
                71 industry awards for hosting and professional excellence since 1999

                Comment

                • CoolMikey
                  Confirmed User
                  • Jun 2017
                  • 174

                  #9
                  Are you still having issues with this?

                  Comment

                  • fris
                    Too lazy to set a custom title
                    • Aug 2002
                    • 55679

                    #10
                    have a peek here

                    https://github.com/pothi/wordpress-nginx

                    has multiple examples and tweaks.

                    catchall domains, ssl, multisite etc.

                    https://github.com/pothi/wordpress-n...ites-available
                    Since 1999: 69 Adult Industry awards for Best Hosting Company and professional excellence.

                    Comment

                    • Zverka
                      Confirmed User
                      • Jun 2005
                      • 307

                      #11
                      Originally posted by Validus

                      Maybe. It's a mess. We have a production site, say example.com and we have a test site beta.example.com. Since the change, somewhat randomly, the production site started linking to the test site. We password protected beta.example.com to ensure users don't end up in our test environment, but now real users are getting the username / password prompt.

                      The hosting company thought it was the W3 Total Cache plugin, so we disabled it on both sites, but still same issue.
                      First thing before accusing ngigx rewrite rules I would first check hardcoded stage site urls, I have seen this almost everyday. Developers sometimes use absolute urls instead of relative, and those are hardcoded either in database or in php somewhere.

                      This what you described it looks like what I think is, hardcoded absolute urls.

                      2 places to check:

                      1) database, dump database as .sql and opens in any txt editor, try to find stage site urls, it there are beta.example.com replace it with example

                      2) code, search entire public_html and try to find beta.example hardcoded in php

                      Lastly if this what I described is true, dump those developers ...

                      After this check you could proceed to nginx. This is my wp nginx that works for years

                      server {

                      listen 80;
                      server_name example.com;

                      root /home/sites/example.com/public_html;
                      access_log /home/sites/example.com/logs/access.log;
                      error_log /home/sites/example.com/logs/error.log;

                      location / {
                      index index.html index.htm index.php;
                      include /home/sites/example.com/public_html/nginx.conf;
                      }

                      location = /xmlrpc.php {
                      deny all;
                      #access_log off; #to prevent from filling up the access log file
                      #error_log off; #to prevent from filling up the error log file
                      }

                      location ~ \.php$ {
                      try_files $uri =404;
                      include /etc/nginx/fastcgi_params;
                      fastcgi_pass unix:/var/run/php5-fpm-sites.sock;
                      fastcgi_index index.php;
                      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                      }

                      location ~* \.(js|css|png|jpg|jpeg|gif|ico)(\?ver=[0-9.]+)?$ {
                      expires 1y;
                      log_not_found off;
                      }

                      }

                      server {

                      listen 80;
                      server_name www.example.com;

                      root /home/sites/example.com/public_html;
                      access_log /home/sites/example.com/logs/access.log;
                      error_log /home/sites/example.com/logs/error.log;

                      location / {
                      index index.html index.htm index.php;
                      include /home/sites/example.com/public_html/nginx.conf;
                      }

                      location = /xmlrpc.php {
                      deny all;
                      #access_log off; #to prevent from filling up the access log file
                      #error_log off; #to prevent from filling up the error log file
                      }

                      location ~ \.php$ {
                      try_files $uri =404;
                      include /etc/nginx/fastcgi_params;
                      fastcgi_pass unix:/var/run/php5-fpm-sites.sock;
                      fastcgi_index index.php;
                      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                      }

                      location ~* \.(js|css|png|jpg|jpeg|gif|ico)(\?ver=[0-9.]+)?$ {
                      expires 1y;
                      log_not_found off;
                      }

                      }

                      make sure server paths match yours.

                      And this is nginx.conf for wp pretty links rewrite, notice include it above conf

                      location / {
                      index index.html index.htm index.php;
                      include /home/sites/example.com/public_html/nginx.conf;
                      }

                      so this is nginx.conf

                      rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;

                      #if (!-e $request_filename) {
                      #rewrite ^(.+)$ /index.php?q=$1 last;
                      #}

                      if (!-e $request_filename) {
                      rewrite . /index.php last;
                      }


                      commented part

                      #if (!-e $request_filename) {
                      #rewrite ^(.+)$ /index.php?q=$1 last;
                      #}

                      was original I found for wp but somehow this one below works better on my server.

                      Comment

                      • Zeiss
                        Confirmed User
                        • May 2012
                        • 5189

                        #12
                        Most probably you have the beta subdomain config wrong. If it used to work before you added it, there it is you should look.


                        Adult Webmasters Guides

                        Comment

                        • blackmonsters
                          Making PHP work
                          • Nov 2002
                          • 20958

                          #13
                          Originally posted by Validus
                          Hi Brad, pretty happy where are at right now. Just having these massive issues with Nginx now and I don't think an unmanaged solution would be a good idea




                          Will do. Thank you!




                          Maybe. It's a mess. We have a production site, say example.com and we have a test site beta.example.com. Since the change, somewhat randomly, the production site started linking to the test site. We password protected beta.example.com to ensure users don't end up in our test environment, but now real users are getting the username / password prompt.

                          The hosting company thought it was the W3 Total Cache plugin, so we disabled it on both sites, but still same issue.




                          Thanks! Will do.

                          I tried to talk to you on skype but didn't hear anything back.


                          Any page/post/media created on the beta site gets assigned a url in the database that
                          links to the beta site.


                          The urls are not relative urls; they are the full http links.


                          You can't just move the beta database to the main site without changing the urls in the database.

                          If the beta site used the same database as the main site to test, then anything page/post/media added on the test site will have to be changed in the database.


                          Free Open Source Live Aggregated Cams Script (FOSLACS)

                          Comment

                          • EddyTheDog
                            Just Doing My Own Thing
                            • Jan 2011
                            • 25433

                            #14
                            Originally posted by Zverka
                            First thing before accusing ngigx rewrite rules I would first check hardcoded stage site urls, I have seen this almost everyday. Developers sometimes use absolute urls instead of relative, and those are hardcoded either in database or in php somewhere.

                            This what you described it looks like what I think is, hardcoded absolute urls.

                            2 places to check:

                            1) database, dump database as .sql and opens in any txt editor, try to find stage site urls, it there are beta.example.com replace it with example

                            2) code, search entire public_html and try to find beta.example hardcoded in php

                            Lastly if this what I described is true, dump those developers ...

                            After this check you could proceed to nginx. This is my wp nginx that works for years

                            server {

                            listen 80;
                            server_name example.com;

                            root /home/sites/example.com/public_html;
                            access_log /home/sites/example.com/logs/access.log;
                            error_log /home/sites/example.com/logs/error.log;

                            location / {
                            index index.html index.htm index.php;
                            include /home/sites/example.com/public_html/nginx.conf;
                            }

                            location = /xmlrpc.php {
                            deny all;
                            #access_log off; #to prevent from filling up the access log file
                            #error_log off; #to prevent from filling up the error log file
                            }

                            location ~ \.php$ {
                            try_files $uri =404;
                            include /etc/nginx/fastcgi_params;
                            fastcgi_pass unix:/var/run/php5-fpm-sites.sock;
                            fastcgi_index index.php;
                            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                            }

                            location ~* \.(js|css|png|jpg|jpeg|gif|ico)(\?ver=[0-9.]+)?$ {
                            expires 1y;
                            log_not_found off;
                            }

                            }

                            server {

                            listen 80;
                            server_name www.example.com;

                            root /home/sites/example.com/public_html;
                            access_log /home/sites/example.com/logs/access.log;
                            error_log /home/sites/example.com/logs/error.log;

                            location / {
                            index index.html index.htm index.php;
                            include /home/sites/example.com/public_html/nginx.conf;
                            }

                            location = /xmlrpc.php {
                            deny all;
                            #access_log off; #to prevent from filling up the access log file
                            #error_log off; #to prevent from filling up the error log file
                            }

                            location ~ \.php$ {
                            try_files $uri =404;
                            include /etc/nginx/fastcgi_params;
                            fastcgi_pass unix:/var/run/php5-fpm-sites.sock;
                            fastcgi_index index.php;
                            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                            }

                            location ~* \.(js|css|png|jpg|jpeg|gif|ico)(\?ver=[0-9.]+)?$ {
                            expires 1y;
                            log_not_found off;
                            }

                            }

                            make sure server paths match yours.

                            And this is nginx.conf for wp pretty links rewrite, notice include it above conf

                            location / {
                            index index.html index.htm index.php;
                            include /home/sites/example.com/public_html/nginx.conf;
                            }

                            so this is nginx.conf

                            rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;

                            #if (!-e $request_filename) {
                            #rewrite ^(.+)$ /index.php?q=$1 last;
                            #}

                            if (!-e $request_filename) {
                            rewrite . /index.php last;
                            }


                            commented part

                            #if (!-e $request_filename) {
                            #rewrite ^(.+)$ /index.php?q=$1 last;
                            #}

                            was original I found for wp but somehow this one below works better on my server.
                            Sounds about right - I would try this first...

                            Comment

                            Working...