很多同学喜欢用nginx做反向代理访问某些网站,原因大家都懂的,今天老高记录一下如何使用nginx做反向代理以及如何配置和优化nginx的反向代理。


准备工作

首先,你需要一个稳定的国外的便宜的VPS,老高推荐搬瓦工,当然你有DO等更快的更贵的VPS就例外了,老高的博客就建立在这个VPS上的。

如何获取你的VPS,请移步 30元一年,打造自己的翻墙VPS

假设你已经有了自己的VPS,我们以后假定安装了centos。那么安装前,一定要执行命令 yum update -y ,让系统处于最新的状态!

下面我们就开始折腾吧!

下载和安装nginx

当然要使用最新稳定版的nginx,其他版本也行。

然后我们开始编译和安装。

具体操作请参考 安装编译nginx , 注意nginx的编译参数。其中--with-http_spdy_module是Google的SPDY,还不是很稳定,所以如果你不需要这个功能,编译的时候请删除。

当安装完毕后应该能够访问到这个页面

然后参考 nginx配置详解 让需要反代的域名工作起来,比如绑定域名等工作。

配置反代

简单的反代就是http,也没有什么缓存控制等高级功能,仅仅一个简单的代理,比如反代老高的博客 http://www.phpgao.com

其实nginx+php也是反代,如下:

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

而复杂点的反代应该就是反代Google一类的https网站,访问量可能会比较大,有缓存等功能,比如 https://www.google.com

简单反代

下面老高的域名www.phpgao.com代理某网站为例,介绍如何使用反代

编辑/etc/nginx.conf文件,新建一个server,输入以下内容

server {
listen 80;
server_name www.phpgao.com;
#charset koi8-r;
#access_log /var/log/nginx/log/www.phpgao.com.access.log main;
error_log /var/log/nginx/log/www.phpgao.com.error.log;
location / {
sub_filter t66y.com www.phpgao.com; # 地址重写
proxy_pass http://t66y.com;
#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_set_header Referer http://$host;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

}

然后重启nginx

service nginx restart

折腾了一番,让我们来看看成果吧!

需要注意

  • sub_filter需要ngx_http_sub_module模块,编译时需要加上对应参数。

Reference:

http://nginx.com/resources/admin-guide/reverse-proxy/

最新文章

  1. Visual Studio 2013 Update 2 RTM 发布
  2. 平行四边形导航,背景颜色渐变动画(不支持IE6/7/8)
  3. .netcore跨平台 之 windows上编译,ubuntu上运行
  4. cocos2d-x 3.10 屏幕适配问题
  5. GROUP BY 與 Null 值
  6. Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物
  7. 怒学三算法 POJ 2387 Til the Cows Come Home (Bellman_Ford || Dijkstra || SPFA)
  8. Nginx,LVS,HAProxy,负载均衡之选择
  9. AVR GCC对端口的操作指南
  10. WEB/ WCF安全认证
  11. Orleans:NET的Actor模型
  12. ubuntu 14.04—解决软件中心进度条卡死的问题
  13. SpringMVC初步——HelloWorld的实现
  14. eclipse 打包 jar 到 Linux上运行
  15. Lambda表达式补充
  16. springboot2.1.3集成单节点elasticsearch6.4.0
  17. Openssl x509命令
  18. Notepad++ PluginManager安装常用插件
  19. IDEA外部工具配置-OpenJML篇
  20. Javascript高级编程学习笔记(72)—— 模拟事件(2)IE事件模拟

热门文章

  1. 20181120-6 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 03
  2. 《Linux内核与分析》第六周
  3. 20162316刘诚昊 第八周实验报告:实验二 Java面向对象程序设计
  4. iOS- 指压即达,如何集成iOS9里的3D Touch
  5. Mac下使用svn命令
  6. Oracle判断字段中是否包含中文(若有,取出该中文的方法)
  7. Kafka生产者各种启动参数说明
  8. ZOJ3529_A Game Between Alice and Bob
  9. 【uoj#317】[NOI2017]游戏 2-SAT
  10. java实现PV操作