2022
我们一起努力

nginx反向代理服务器使用方法,怎么把域名和服务器

因为项目需要,现在想将A服务器上的网站(代码)转移到B服务器上,但是不想重新做域名解析,因为这段时间网站收录方面都比较优秀,冒然修改解析怕对网站收录有影响。所以借助一下Nginx的反向代理,将域名从A服务器反向代理到B服务器。

首先将B服务器的环境做成和A一致(Nginx+PHP7.2+Mysql)。将A服务器上的代码以及数据库同步到B服务器上。

不用修改代码中的站点配置,只需要修改Nginx的配置:

A服务器的配置:

upstream proxy_server{
    server B_SERVER_IP:8080;
}

server {
    listen 80;
    server_name  www.domain.com m.domain.com;
        
    index  index.html index.htm index.php;

    ## send request back to apache ##
    location / {
        proxy_pass  http://proxy_server;

        #Proxy Settings
        proxy_redirect     off;
        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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }
}

通过以上配置,将域名解析反向代理到B_SERVER_IP:8080中,注意端口,因为我A和B服务器都做了配置分割,在default配置中,监听的80端口,并且配置了server_name _。所以一切以IP直接解析过来的访问都走了default这个配置,没有到指定的配置下。在不想修改default规则的前提下,我把B服务器上的需要被反向代理访问的站点,listen 8080,server_name IP,所以A服务器配置中需要设置被访问的B服务器的IP时,需要修改端口为8080。如果想玩负载均衡,可以在upstream proxy_server下配置多台webserver的ip,并且通过设置weight权重来配比访问。

upstream proxy_server{
    server B_SERVER_IP:8080 weight=1;
    server C_SERVER_IP:8080 weight=1;
}

权重越高,被访问的机率越大。如上所示,weight都为1,那机率为50%,50%

nginx反向代理服务器使用方法,怎么把域名和服务器

B服务器的配置

server {
    listen       8080;
    server_name  IP;

    root /home/www/wwwroot/website;
    index index.php index.html index.htm;

    charset utf8;

    location ~ .php(/|$) 
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        #include fastcgi_params;
    }

    #针对Thinkphp 3.2 做的优化,不开启PATH_INFO,直接用rewrite指向到兼容模式的URL
    location / {
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=$1  last;
            break;
        }
    }
}

通过这样的配置,在访问网站时,域名先解析到A服务器上,然后A服务器将所有的访问请求反向代理到B服务器中,B服务器对请求做相关的处理后,返回给A服务器。从而达到不需要修改域名解析,将代码部署到B服务器中。同理也可以实现负载均衡。

赞(0)
文章名称:《nginx反向代理服务器使用方法,怎么把域名和服务器》
文章链接:https://www.fzvps.com/51920.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!