python - nginx 小白, nginx 启动后 80 端口无法访问
高洛峰
高洛峰 2017-04-18 10:26:02
0
7
715

环境:阿里云 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;
   }

}
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(7)
刘奇

Avez-vous essayé nginx -t pour vérifier si le fichier de configuration est correct ?

小葫芦

Vérifiez que http et https sont configurés avec le même nom de serveur. Essayez de configurer le port 80 en https et voyez si cela fonctionne
serveur {
écouter 80;
écouter 443 ssl;
......
}

左手右手慢动作

Parce que vous avez défini server_name , nginx ne surveille que le nom de domaine, pas l'IP. En d’autres termes, nginx ne connaît pas l’adresse IP de son propre réseau externe, il obtiendra les informations du fichier de configuration.
La solution simple est de supprimer server_name .
Vous pouvez également faire cela server_name 1.1.1.1 www.kaoshixing.com; Mais de cette façon, la résolution de noms pan-domaine ne peut pas être effectuée.

小葫芦

Parce que vous avez défini le nom du serveur dans tous les blocs du serveur, lorsque le navigateur y accède, nginx fera correspondre le nom du serveur un par un. Si aucun d'entre eux ne correspond (accessible avec IP), nginx utilisera default_server, mais vous n'avez pas défini default_server. Problème C'est peut-être là le problème. Essayez de remplacer un bloc de serveur par celui-ci ?

server {
   listen 80 default_server;
   server_name  www.kaoshixing.com;

(De plus, le port 80 peut être occupé par d'autres programmes)

洪涛

Considérez la politique de sécurité d'Alibaba Cloud et la politique de pare-feu de CentOS7.
CentOS7 n'ouvre pas le port 80 par défaut.

左手右手慢动作

Confirmez s'il s'agit d'un problème de configuration qui empêche le démarrage de nginx ou si le réseau externe telnet 80 est bloqué. Ce que je rencontre est généralement dû aux paramètres du pare-feu ou à 80 occupés par Apache installé dans le vps par défaut.

伊谢尔伦

Le port 80 des fournisseurs de cloud nationaux doit être enregistré avant de pouvoir être publié.
Vérifiez également la stratégie de groupe de sécurité et le pare-feu VPC séparément.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal