鉴于国内一堆需要备案的服务器,而有些域名不想备案,或者是在国外买的域名又想在国内访问比较友好。于是有了如下记录
需要条件
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; #设定缓存文件夹大小
}
}
- 国内的服务器的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;
}
}