最近調試公眾號功能,接收推送的時候不想每次都提交到伺服器去看日誌
所以在伺服器上用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 導致的 刪了就可以了