关于Nginx默认监听端口不是80而造成程序出错的简单问题

Posted AuBuCuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Nginx默认监听端口不是80而造成程序出错的简单问题相关的知识,希望对你有一定的参考价值。

关于nginx默认监听端口不是80而造成程序出错的简单问题

一、遇到的问题

code:

comments = []
@app.route("/", methods=["GET", "POST"])
def index():
   if request.method == "GET":
     return render_template("index.html", comments=comments)
   #如果是post:
   comments.append(request.form["contents"])
   return redirect(url_for(\'index\'))

场景还原:我的服务器没开80端口,我用nginx listen 81端口。利用flask框架(上述代码)遇到url_for(\'index\')定向到 xxx.cn。可是我需要定向到 xxx.cn:81。(手动访问xxx.cn:81都是可以的。)
url_for()的参数上下了一会功夫,没反应。仔细想一下这应该是前端问题,可能 Nginx 有相应的办法。
首先我参考 http://www.cnblogs.com/kevingrace/p/8073646.html 尝试添加 proxy_redirect http://ip/ http://ip:81/;,还是不行。。。

二、解决办法

参考 http://blog.sina.com.cn/s/blog_646085780102wuxp.html
正确方式:配置 /Nginx.conf-http-server-location 添加如下语句:

proxy_set_header Host $host:81;

三、后记

看到Nginx.conf还有很多其他配置选项我现在还没用到,只要思路清晰,以后遇到还是可以一步步加进来。

以上是关于关于Nginx默认监听端口不是80而造成程序出错的简单问题的主要内容,如果未能解决你的问题,请参考以下文章

Win7下,nginx默认80端口被System占用,造成nginx启动报错

Nginx如何配置多个服务域名解析共用80端口详解

nginx启动不了 求助

Apache的网站,使用Nginx进行反向代理(1个IP绑定多个域名,对应多个网站)解决方案

linux nginx的端口问题,我要把默认的80端口改成8088,报错

通过浏览器访问远程服务器 IP 地址是不是默认解析为端口 80?