찾다

 >  Q&A  >  본문

python - nginx 小白, 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;
   }

}
高洛峰高洛峰2785일 전707

모든 응답(7)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-18 10:28:02

    구성 파일이 올바른지 확인하기 위해 nginx -t를 시도해 보셨나요?

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 10:28:02

    http와 https가 모두 동일한 server_name으로 구성되어 있는지 확인하세요. 포트 80을 https로 구성하고 작동하는지 확인하세요.
    server {
    listen 80;
    listen 443 ssl;
    ......
    }

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 10:28:02

    server_name 을 설정했기 때문에 nginx는 IP가 아닌 도메인 이름만 모니터링합니다. 즉, nginx는 자신의 외부 네트워크 IP를 알지 못하며 구성 파일에서 정보를 가져옵니다.
    간단한 해결책은 server_name을 제거하는 것입니다.
    이렇게 해도 됩니다server_name 1.1.1.1 www.kaoshixing.com; 하지만 이 방법으로는 범도메인 이름 확인을 수행할 수 없습니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-18 10:28:02

    모든 서버 블록에 server_name을 설정했기 때문에 브라우저가 액세스할 때 nginx는 server_name을 하나씩 일치시킵니다. 둘 중 어느 것도 일치하지 않으면(IP를 사용하여 액세스) nginx는 default_server를 사용하지만 default_server를 설정하지 않았습니다. 문제 아마도 이것이 문제일 것입니다. 서버 블록을 이것으로 변경해 보십시오.

    으아악

    (또한 포트 80은 다른 프로그램이 점유하고 있을 수 있습니다.)

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:28:02

    Alibaba Cloud의 보안 정책과 CentOS7의 방화벽 정책을 고려해보세요.
    CentOS7은 기본적으로 포트 80을 열지 않습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 10:28:02

    nginx가 시작되지 않는 구성 문제인지, 아니면 외부 네트워크 텔넷 80이 차단되어 있는지 확인하세요. 내가 만나는 것은 일반적으로 방화벽 설정이나 기본 vps에 설치된 아파치가 80을 차지하고 있기 때문입니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:28:02

    국내 클라우드 공급업체의 포트 80을 등록해야 출시할 수 있습니다.
    보안 그룹 정책과 VPC 방화벽도 별도로 확인하세요.

    회신하다
    0
  • 취소회신하다