Heim > Backend-Entwicklung > PHP-Tutorial > 关于使用SSH建立隧道使用Nginx反向代理到本地的一些疑问。

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

WBOY
Freigeben: 2016-07-06 13:51:18
Original
1841 Leute haben es durchsucht

最近调试微信公众号功能,接收微信推送的时候不想每次都提交到服务器去看日志
所以在服务器上用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>
Nach dem Login kopieren
Nach dem Login kopieren

使用如下命令建立ssh 隧道

<code>ssh -R 9000:localhost:80 root@ServerAddress -N</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样成功建立了隧道
当我在本机访问 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>
Nach dem Login kopieren
Nach dem Login kopieren

使用如下命令建立ssh 隧道

<code>ssh -R 9000:localhost:80 root@ServerAddress -N</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样成功建立了隧道
当我在本机访问 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>
Nach dem Login kopieren

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

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage