Rumah > pembangunan bahagian belakang > tutorial php > 关于使用SSH建立隧道使用Nginx反向代理到本地的一些疑问。

关于使用SSH建立隧道使用Nginx反向代理到本地的一些疑问。

WBOY
Lepaskan: 2016-07-06 13:51:18
asal
1840 orang telah melayarinya

最近调试微信公众号功能,接收微信推送的时候不想每次都提交到服务器去看日志
所以在服务器上用Nginx的反向代理 将服务器 80 端口 接受到的请求 转发到了 127.0.0.1:9000 上
然后使用ssh建立隧道 将服务器的 9000 端口 映射给了我本地开发机的 80

SSH隧道参考资料 http://my.oschina.net/magicly007/blog/480706

假设服务器对外域名 www.site.com

Nginx 代理配置大致如下 :

<code>server {
     listen       80;     
     server_name  www.site.com;
     root         /var/www/site/;
     charset      utf-8;
     access_log  /www/log/nginx/site.access.log  main;
     error_log   /www/log/nginx/site.error.log;

     location / {
         try_files $uri $uri/ /$yii_bootstrap?$query_string;
         index  index.php;

         proxy_pass http://127.0.0.1:9000;
         proxy_set_header Host $host:80;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Via "nginx";
     }
     include     /etc/nginx/php-fpm;
}</code>
Salin selepas log masuk
Salin selepas log masuk

使用如下命令建立ssh 隧道

<code>ssh -R 9000:localhost:80 root@ServerAddress -N</code>
Salin selepas log masuk
Salin selepas log masuk

这样成功建立了隧道
当我在本机访问 www.site.com的时候 服务器成功将请求转发给了我本机localhost的80端口
问题是 只能成功转发www.site.com 的默认URL接收到的内容 却不能重定向
假设我访问 www.site.com/post/page 服务器并不会转发而是直接解析响应了
请问是不是url重定向还需特殊的配置 ?

回复内容:

最近调试微信公众号功能,接收微信推送的时候不想每次都提交到服务器去看日志
所以在服务器上用Nginx的反向代理 将服务器 80 端口 接受到的请求 转发到了 127.0.0.1:9000 上
然后使用ssh建立隧道 将服务器的 9000 端口 映射给了我本地开发机的 80

SSH隧道参考资料 http://my.oschina.net/magicly007/blog/480706

假设服务器对外域名 www.site.com

Nginx 代理配置大致如下 :

<code>server {
     listen       80;     
     server_name  www.site.com;
     root         /var/www/site/;
     charset      utf-8;
     access_log  /www/log/nginx/site.access.log  main;
     error_log   /www/log/nginx/site.error.log;

     location / {
         try_files $uri $uri/ /$yii_bootstrap?$query_string;
         index  index.php;

         proxy_pass http://127.0.0.1:9000;
         proxy_set_header Host $host:80;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header Via "nginx";
     }
     include     /etc/nginx/php-fpm;
}</code>
Salin selepas log masuk
Salin selepas log masuk

使用如下命令建立ssh 隧道

<code>ssh -R 9000:localhost:80 root@ServerAddress -N</code>
Salin selepas log masuk
Salin selepas log masuk

这样成功建立了隧道
当我在本机访问 www.site.com的时候 服务器成功将请求转发给了我本机localhost的80端口
问题是 只能成功转发www.site.com 的默认URL接收到的内容 却不能重定向
假设我访问 www.site.com/post/page 服务器并不会转发而是直接解析响应了
请问是不是url重定向还需特殊的配置 ?

应该是nginx配置问题。

试一下去除nginx多余的设置,只用最简单的。

<code>server {
    listen 80 default_server;
    client_max_body_size   10M;
    client_body_buffer_size   128k;

    server_name $host;

    index index.html;
    root /website/$host;
    location / {
    }
    location ~ /dev/ {
        rewrite /dev/(.*)$ /$1 break;
        proxy_pass http://localhost:3000;
    }
}</code>
Salin selepas log masuk

这是我在使用的,情况正常。

个人怀疑php相关的影响了,试着去除吧。

是nginx中的try_files 导致的 删了就可以了

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan