nginx 反向代理

鉴于国内一堆需要备案的服务器,而有些域名不想备案,或者是在国外买的域名又想在国内访问比较友好。于是有了如下记录

需要条件

1.国内的服务器,运行nginx
2.国外的服务器,运行nginx(或者虚拟机能自己配置nginx的)

国内服务器nginx配置

1.确保端口能够访问

centOS7

firewall-cmd --zone=public --add-port=88/tcp(or udp, or icmp) --permanent
firewall-cmd --reload

2.配置国外服务器的nginx
添加server

server {
    listen       80;
    server_name  www.*.com *.com;
    location / {
        proxy_pass   http://国内ip:88;
        proxy_redirect             off; 
        #下面的参数取决环境需要
        #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
        proxy_set_header           Host $host; 
        proxy_set_header           X-Real-IP $remote_addr; 
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for; 
        client_max_body_size       10m; #允许客户端请求的最大单文件字节数
        client_body_buffer_size    128k; #缓冲区代理缓冲用户端请求的最大字节数
        proxy_connect_timeout      300; #nginx跟后端服务器连接超时时间(代理连接超时)
        proxy_send_timeout         300; #后端服务器数据回传时间(代理发送超时)
        proxy_read_timeout         300; #连接成功后,后端服务器响应时间(代理接收超时)
        proxy_buffer_size          4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
        proxy_buffers              4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
        proxy_busy_buffers_size    64k; #高负荷下缓冲大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k; #设定缓存文件夹大小
    }
}
  1. 国内的服务器的nginx配置
    php的配置就看自己框架的需要了
server {
    listen 88;
#   listen 443 ssl;

    server_name  *.com www.*.com;
#   ssl_certificate /ssl/www.*.com.crt;
#   ssl_certificate_key /ssl/www.*.com.key;

    root /home/wwwroot/test;
    #root /home/wwwroot/kuurin/public;
    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php {
        include fastcgi_params;
        set $path_info "" ;
        set $real_script_name $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                    set $real_script_name $1;
                    set $path_info $2;
             }
             #配置fastcgi的一些参数
                fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
                fastcgi_param SCRIPT_NAME $real_script_name;
                fastcgi_param PATH_INFO $path_info;
                ###pathinfo支持end
            fastcgi_intercept_errors on;
            fastcgi_pass   127.0.0.1:9000;
    }
}

最后两边重启(nginx -s reload)nginx 把域名指向国外的ip就能跳到国内的服务器了。

就是累了点。。。。不过这样就不用备案了。

然后写完!国外ip就被封了!神么鬼!!擦

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容