资讯专栏INFORMATION COLUMN

Nginx 转发请求反向代理示例

scwang90 / 2534人阅读

摘要:不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用利用代理转发请求实例。利用代理转发请求实例作为目前最流行的服务器之一,可以很方便地实现反向代理。

我们米扑科技的业务遍布全球,有时国外的客户无法访问我们搭建在国内的服务,这就要求我们在国外服务器上搭建一个代理转发服务,用户请求国外服务器的域名,然后代理转发到国内,处理请求后返回结果给国外的客户。Nginx 不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用 Nginx 利用代理转发请求实例。

Nginx 利用代理转发请求实例

nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。

nginx 反向代理官方文档: NGINX REVERSE PROXY

当在一台主机上部署了多个不同的web服务器,并且需要能在80和443端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能,用 nginx 在80端口监听所有请求,并转发给443端口,再由443端口统一依据转发规则转发到对应的国内web服务器上。

示例:

proxy.mimvp.com 域名在阿里云备案,部署在国内的北京阿里云服务器

proxy.mimgu.cn 域名在腾讯云备案,部署在国外的新加坡腾讯云服务器(国外域名可不备案)

1. 国内北京阿里云服务器

vim mimvp_proxy.conf

</>复制代码

  1. server {
  2. listen 80;
  3.   server_name proxy.mimvp.com; # 域名可以有多个,用空格隔开
  4.   root www/mimvp_proxy;
  5. rewrite ^(.*)$ https://$host$1 permanent;
  6.   location / {
  7.     root www/mimvp_proxy;
  8.     index index.php index.html index.htm;
  9.   }
  10.   location ~ .php$ {
  11.     root www/mimvp_proxy;
  12.     fastcgi_pass 127.0.0.1:9000;
  13.     fastcgi_index index.php;
  14.     fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  15.     include fastcgi.conf;
  16.   }
  17. location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
  18. root www/mimvp_proxy;
  19. expires 30d;
  20. }
  21. location ~* ^/(robots.txt) {
  22. root www/mimvp_proxy;
  23. expires 365d;
  24. }
  25. location ~* ^/favicon.ico {
  26. root www/mimvp_proxy;
  27. expires 365d;
  28. }
  29. location ~* ^/img/logo.png {
  30. root www/mimvp_proxy;
  31. expires 365d;
  32. }
  33. location ~ /.ht {
  34. deny all;
  35. }
  36. }
  37. server {
  38. listen 443 ssl http2;
  39. server_name proxy.mimvp.com; # 域名可以有多个,用空格隔开
  40. root www/mimvp_proxy;
  41. ssl on;
  42. ssl_certificate proxy.mimvp.com.crt;
  43. ssl_certificate_key proxy.mimvp.com.key;
  44. ssl_session_cache shared:SSL:1m;
  45. ssl_session_timeout 10m;
  46. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  47. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  48. ssl_prefer_server_ciphers on;
  49.   location / {
  50.     root www/mimvp_proxy;
  51.     index index.php index.html index.htm;
  52.   }
  53.   location ~ .php$ {
  54.     root www/mimvp_proxy;
  55.     fastcgi_pass 127.0.0.1:9000;
  56.     fastcgi_index index.php;
  57.     fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  58.     include fastcgi.conf;
  59.   }
  60. location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
  61. root www/mimvp_proxy;
  62. expires 30d;
  63. }
  64. location ~* ^/(robots.txt) {
  65. root www/mimvp_proxy;
  66. expires 365d;
  67. }
  68. location ~* ^/favicon.ico {
  69. root www/mimvp_proxy;
  70. expires 365d;
  71. }
  72. location ~* ^/img/logo.png {
  73. root www/mimvp_proxy;
  74. expires 365d;
  75. }
  76. location ~ /.ht {
  77. deny all;
  78. }
  79. }

2. 国外新加坡腾讯云服务器

vim mimvp_proxy2.conf

</>复制代码

  1. server {
  2. listen 80;
  3.   server_name proxy.mimgu.cn;
  4.   root www/mimvp_proxy;
  5. rewrite ^(.*)$ https://$host$1 permanent; ## 全部请求强制跳转到 https
  6. }
  7. server {
  8. listen 443 ssl http2;
  9. server_name proxy.mimgu.cn;
  10. root www/mimvp_proxy;
  11. ssl on;
  12. ssl_certificate proxy.mimgu.cn.crt;
  13. ssl_certificate_key proxy.mimgu.cn.key;
  14. ssl_session_cache shared:SSL:1m;
  15. ssl_session_timeout 10m;
  16. ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  17. ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  18. ssl_prefer_server_ciphers on;
  19.   location / {
  20.     proxy_pass https://proxy.mimvp.com; ## 全部请求强制跳转到国内服务器 https://proxy.mimvp.com
  21.   }
  22.   location ~ .php$ {
  23.     proxy_pass https://proxy.mimvp.com;
  24.   }
  25. location ~* ^/(images|img|javascript|js|css|blog|flash|media|static)/ {
  26. proxy_pass https://proxy.mimvp.com; ## css,js,img 等全部要强制转发,否则可能排版错乱
  27. }
  28. location ~* ^/(robots.txt) {
  29. proxy_pass https://proxy.mimvp.com;
  30. }
  31. location ~* ^/favicon.ico {
  32. proxy_pass https://proxy.mimvp.com;
  33. }
  34. location ~* ^/img/logo.png {
  35. proxy_pass https://proxy.mimvp.com;
  36. }
  37. location ~ /.ht {
  38. deny all;
  39. }
  40. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39919.html

相关文章

  • Nginx 利用代理转发请求示例

    摘要:不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用利用代理转发请求实例。米扑博客原文利用代理转发请求实例利用代理转发请求实例作为目前最流行的服务器之一,可以很方便地实现反向代理。 我们米扑科技的业务遍布全球,有时国外的客户无法访问我们搭建在国内的服务,这就要求我们在国外服务器上搭建一个代理转发服务,用户请求国外服务器的域名,然后代理转发到国内,处...

    jsbintask 评论0 收藏0
  • Nginx 利用代理转发请求示例

    摘要:不仅可以实现负载均衡,还可以实现反向代理转发,非常适合我们的使用场景,因此我们米扑科技采用利用代理转发请求实例。米扑博客原文利用代理转发请求实例利用代理转发请求实例作为目前最流行的服务器之一,可以很方便地实现反向代理。 我们米扑科技的业务遍布全球,有时国外的客户无法访问我们搭建在国内的服务,这就要求我们在国外服务器上搭建一个代理转发服务,用户请求国外服务器的域名,然后代理转发到国内,处...

    reclay 评论0 收藏0

发表评论

0条评论

scwang90

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<