Nginx

域名不會解析到 VPS

  • March 15, 2018

我在 Cent OS 7 上執行了 DO VPS。我安裝了 nginx 和 Virtual min。我無法將我的域名解析到 VPS。我在 cloudflare 中創建了一個指向我的浮動 IP(靜態 IP)的 A 記錄和一個值為 @ 的 CNAME www。我之前使用相同的設置,它正在工作。我銷毀了我的 droplet 並再次重建它,但我已為 VPS 分配了相同的靜態 IP。我已允許埠 80,443 和 10000。

我也將我的 nginx.conf 配置為監聽埠 443。但是我的域名仍然無法解析到我的 VPS。這是我的 nginx.conf

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
worker_connections 1024;
}

http {
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
keepalive_timeout   65;
types_hash_max_size 2048;

include             /etc/nginx/mime.types;
default_type        application/octet-stream;

# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;

server {
   listen       80 default_server;
   listen       [::]:80 default_server;
   server_name  _;
   root         /usr/share/nginx/html;

   # Load configuration files for the default server block.
   include /etc/nginx/default.d/*.conf;

   location / {
   }

   error_page 404 /404.html;
       location = /40x.html {
   }

   error_page 500 502 503 504 /50x.html;
       location = /50x.html {
   }
   }

   # Settings for a TLS enabled server.
   #
   #    server {
   #        listen       443 ssl http2 default_server;
   #        listen       [::]:443 ssl http2 default_server;
   #        server_name  _;
   #        root         /usr/share/nginx/html;
   #
   #        ssl_certificate "/etc/pki/nginx/server.crt";
   #        ssl_certificate_key "/etc/pki/nginx/private/server.key";
   #        ssl_session_cache shared:SSL:1m;
   #        ssl_session_timeout  10m;
   #        ssl_ciphers HIGH:!aNULL:!MD5;
   #        ssl_prefer_server_ciphers on;
   #
   #        # Load configuration files for the default server block.
   #        include /etc/nginx/default.d/*.conf;
   #
   #        location / {
   #        }
   #
   #        error_page 404 /404.html;
   #            location = /40x.html {
   #        }
   #
   #        error_page 500 502 503 504 /50x.html;
   #            location = /50x.html {
   #        }
   #    }

    server_names_hash_bucket_size 128;
    server {
    server_name mydomain.com www.mydomain.com;
    listen 174.138.xxx.x;
    root /home/mydomain/public_html;
    index index.html index.htm index.php;
    access_log /var/log/virtualmin/mydomain.com_access_log;
    error_log /var/log/virtualmin/mydomain.com_error_log;
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx;
   fastcgi_param QUERY_STRING $query_string;
   fastcgi_param REQUEST_METHOD $request_method;
   fastcgi_param CONTENT_TYPE $content_type;
   fastcgi_param CONTENT_LENGTH $content_length;
   fastcgi_param SCRIPT_FILENAME /home/mydomain/public_html$fastcgi_script_name;
   fastcgi_param SCRIPT_NAME $fastcgi_script_name;
   fastcgi_param REQUEST_URI $request_uri;
   fastcgi_param DOCUMENT_URI $document_uri;
   fastcgi_param DOCUMENT_ROOT /home/mydomain/public_html;
   fastcgi_param SERVER_PROTOCOL $server_protocol;
   fastcgi_param REMOTE_ADDR $remote_addr;
   fastcgi_param REMOTE_PORT $remote_port;
   fastcgi_param SERVER_ADDR $server_addr;
   fastcgi_param SERVER_PORT $server_port;
   fastcgi_param SERVER_NAME $server_name;
   fastcgi_param HTTPS $https;
   location ~ \.php$ {
       try_files $uri =404;
       fastcgi_pass unix:/var/php-nginx/152112218423330.sock/socket;
   }
   listen 174.138.xxx.x:443 ssl;
   server_name mydomain.com www.mydomain.com;
   ssl_certificate /home/mydomain/ssl.cert;
   ssl_certificate_key /home/mydomain/ssl.key;
   fastcgi_read_timeout 60;
   gzip on;
   ssl on;
   }
   }

我嘗試使用 netstat -an | 檢查埠是否正在偵聽 grep 443 | grep -i 聽,他們似乎在聽。這是我的輸出

tcp        0      0 174.138.xxx.x:443       0.0.0.0:*                     LISTEN

有一些重複的條目以及配置錯誤的條目。這是更新的程式碼:

 user nginx;

 worker_processes auto;

 error_log /var/log/nginx/error.log;

 pid /run/nginx.pid;

 include /usr/share/nginx/modules/*.conf;

 events {
 worker_connections 1024;
 }

 http {

 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
               '$status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" "$http_x_forwarded_for"';

 access_log  /var/log/nginx/access.log  main;

 sendfile            on;
 tcp_nopush          on;
 tcp_nodelay         on;
 keepalive_timeout   65;
 types_hash_max_size 2048;

 include             /etc/nginx/mime.types;
 default_type        application/octet-stream;

 include /etc/nginx/conf.d/*.conf;


 server {

 listen       80 default_server;
 listen       [::]:80 default_server;

 server_name  mydomain.com www.mydomain.com;

 root         /usr/share/nginx/html;

 include /etc/nginx/default.d/*.conf;

 location / {

 }

  error_page 404 /404.html;
   location = /40x.html {
 }

 error_page 500 502 503 504 /50x.html;
   location = /50x.html {
 }
 }

 server {

 listen 443 ssl;

 server_name mydomain.com www.mydomain.com;


 root /home/mydomain/public_html;
 index index.php index.html index.htm;

 access_log /var/log/virtualmin/mydomain.com_access_log;

 error_log /var/log/virtualmin/mydomain.com_error_log;


 location ~ \.php$ {
 try_files $uri =404;
 fastcgi_pass unix:/var/php-nginx/152112218423330.sock/socket;

 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
 fastcgi_param SERVER_SOFTWARE nginx;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param SCRIPT_FILENAME /home/mydomain/public_html$fastcgi_script_name;
 fastcgi_param SCRIPT_NAME $fastcgi_script_name;
 fastcgi_param REQUEST_URI $request_uri;
 fastcgi_param DOCUMENT_URI $document_uri;
 fastcgi_param DOCUMENT_ROOT /home/mydomain/public_html;
 fastcgi_param SERVER_PROTOCOL $server_protocol;
 fastcgi_param REMOTE_ADDR $remote_addr;
 fastcgi_param REMOTE_PORT $remote_port;
 fastcgi_param SERVER_ADDR $server_addr;
 fastcgi_param SERVER_PORT $server_port;
 fastcgi_param SERVER_NAME $server_name;
 fastcgi_param HTTPS $https;
 fastcgi_read_timeout 60;   
 }

  ssl on;
 ssl_certificate /home/mydomain/ssl.cert;
 ssl_certificate_key /home/mydomain/ssl.key;

 gzip on;

}
}

引用自:https://serverfault.com/questions/901844