關於使用SSH建立隧道使用Nginx反向 Proxy到本地的一些疑問。

來源:互聯網
上載者:User
最近調試公眾號功能,接收推送的時候不想每次都提交到伺服器去看日誌
所以在伺服器上用Nginx的反向 Proxy 將伺服器 80 連接埠 接受到的請求 轉寄到了 127.0.0.1:9000 上
然後使用ssh建立隧道 將伺服器的 9000 連接埠 映射給了我本地開發機的 80

SSH隧道參考資料 http://my.oschina.net/magicly007/blog/480706

假設伺服器對外網域名稱 www.site.com

Nginx 代理配置大致如下 :

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;}

使用如下命令建立ssh 隧道

ssh -R 9000:localhost:80 root@ServerAddress -N

這樣成功建立了隧道
當我在本機訪問 www.site.com的時候 伺服器成功將請求轉寄給了我本機localhost的80連接埠
問題是 只能成功轉寄www.site.com 的預設URL接收到的內容 卻不能重新導向
假設我訪問 www.site.com/post/page 伺服器並不會轉寄而是直接解析響應了
請問是不是url重新導向還需特殊的配置 ?

回複內容:

最近調試公眾號功能,接收推送的時候不想每次都提交到伺服器去看日誌
所以在伺服器上用Nginx的反向 Proxy 將伺服器 80 連接埠 接受到的請求 轉寄到了 127.0.0.1:9000 上
然後使用ssh建立隧道 將伺服器的 9000 連接埠 映射給了我本地開發機的 80

SSH隧道參考資料 http://my.oschina.net/magicly007/blog/480706

假設伺服器對外網域名稱 www.site.com

Nginx 代理配置大致如下 :

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;}

使用如下命令建立ssh 隧道

ssh -R 9000:localhost:80 root@ServerAddress -N

這樣成功建立了隧道
當我在本機訪問 www.site.com的時候 伺服器成功將請求轉寄給了我本機localhost的80連接埠
問題是 只能成功轉寄www.site.com 的預設URL接收到的內容 卻不能重新導向
假設我訪問 www.site.com/post/page 伺服器並不會轉寄而是直接解析響應了
請問是不是url重新導向還需特殊的配置 ?

應該是nginx配置問題。

試一下去除nginx多餘的設定,只用最簡單的。

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;    }}

這是我在使用的,情況正常。

個人懷疑php相關的影響了,試著去除吧。

是nginx中的try_files 導致的 刪了就可以了

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.