运行pythonweb程序在nginx 启动后 80 端口无法访问
环境:阿里云 centos7
flask web 应用, gunicorn 已经启动,访问ip:8888
正常访问
nginx 正常启动,无法直接访问 ip ,浏览器显示: This site can ’ t be reached
我有两个配置文件conf/nginx.conf
, site-enable/kaoshixing.conf
,内容分别如下:
user root;
worker_processes auto;
# worker_cpu_affinity auto;
error_log /home/admin/kaoshixing/nginx/logs/error.log;
pid /home/admin/kaoshixing/nginx/logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 20480;
}
http {
include mime.types;
default_type application/octet-stream;
fastcgi_intercept_errors on;
log_format milog '$server_addr\t$hostname\t$remote_addr\t$http_x_forwarded_for\t$time_local\t$request_uri\t$request_length\t$bytes_sent\t$request_time\t$status\t$upstream_addr\t$upstream_cache_status\t$upstream_response_time\t$http_user_agent\t';
####full-format log for debug
log_format debug_log '$remote_addr\t$server_addr\t$hostname\t$time_local\t$host\t$request\t$status\t$body_bytes_sent\t$http_referer\t$http_user_agent\t$http_x_forwarded_for\t$request_uri\t$request_length\t$bytes_sent\t$request_body\t$request_time\t$upstream_response_time\t$upstream_addr\t$upstream_cache_status';
access_log /home/admin/kaoshixing/log/nginx/access.log milog;
sendfile on;
keepalive_timeout 65;
client_max_body_size 120m;
server_names_hash_bucket_size 128;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 8192;
proxy_connect_timeout 10;
proxy_read_timeout 120;
proxy_send_timeout 120;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
gzip on;
gzip_types application/json application/x-json text/plain application/x-javascript text/css text/javascript application/xml text/xml image/jpeg image/gif image/png;
gzip_proxied expired no-cache no-store private auth;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
limit_req_zone $server_port zone=tp:500m rate=1700r/s;
limit_req_zone $server_port zone=tps:500m rate=1100r/s;
limit_req_zone $binary_remote_addr zone=tip:500m rate=100r/s;
include /home/admin/kaoshixing/nginx/site-enable/*.conf;
}
*
upstream kaoshixing.com_backend{
server 0.0.0.0:8888 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
server_name www.kaoshixing.com;
access_log /home/admin/kaoshixing/nginx/logs/ksxing.com.log milog;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://kaoshixing.com_backend;
}
}
server {
listen 443 ssl;
server_name www.kaoshixing.com;
access_log /home/admin/kaoshixing/nginx/logs/ksxing.com.log milog;
ssl on;
ssl_certificate ssl/kaoshixing.com.crt;
ssl_certificate_key ssl/kaoshixing.com.key;
ssl_session_cache shared:SSL:80m;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://kaoshixing.com_backend;
proxy_redirect http://www.kaoshixing.com https://www.kaoshixing.com;
}
}
server {
listen 80;
server_name kaoshixing.com;
access_log /home/admin/kaoshixing/nginx/logs/ksxing.com.log milog;
location / {
rewrite ^(.*) http://www.$host$1 redirect;
}
}
因为你设置了 server_name
,所以nginx只监听域名,不监听ip。换句话说,nginx不知道自己的外网ip,它会从配置文件中获得信息。
简单的解决办法是删除 server_name
。
也可以这样 server_name 1.1.1.1 www.kaoshixing.com;
只是这样就不能泛域名解析了。
看你这http和https都配置了相同的server_name。 试试看将80端口也配置到https中,看看行不行
server {
listen 80;
listen 443 ssl;
......
}
有试过nginx -t检查配置文件是否正确么
因为你在所有server块都设置了server_name,当浏览器访问时,nginx会一个个匹配server_name,如果都不匹配(用ip访问),nginx就会使用default_server,但你没设置default_server,问题可能就出在这,把一个server块改成这样试试?
server {
listen 80 default_server;
server_name www.kaoshixing.com;
(还有就是80端口可能被其他程序占用着)
确认下是配置问题导致nginx起不来 还是外网telnet 80不通。我遇到的一般是防火墙设置的或者80被默认vps装的apache占用。
国内云厂商的80端口都需要备案才能放通的。
另外单独检查一下安全组策略和VPC的防火墙什么的。
考虑阿里云的安全策略以及CentOS7的防火墙策略.
CentOS7默认是不开放80端口的.
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd13712.html
相关文章 Recommend
- • apache运行webpy项目遇到换行符无故增加的恼人问题
- • Python语言运行GUI程序的工作效率高不高?
- • 自动检测当前运行环境版本的python方法是什么
- • python2.7运行报Backup FAILED错误是什么问题
- • 分析python源码找到新闻阅读器无法运行的原因,
- • 我的网站爬虫python代码为什么不能正常运行,哪里
- • c#语言可以调用python程序问题
- • Python gui程序控件不是很理解
- • crontab后台程序无法收到SIGINT -2信号
- • python运行爬虫程序时间如何控制?
- • RabbitMQ Routing_Key程序产生的问题
- • 有哪些支持C语言的流化程序(类似protobuf/thirft这种
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问