title: Problems configuring nginx for a flask site
body: <p>I am having trouble getting nginx to serve the small flask site I am working on.  I followed some tutorials from Digital Ocean, and I get it mostly right, but here is the problem:</p>
  
  <p>In my /etc/nginx/sites-available/xproject configuration file, my server block has <code>listen 80</code> as well as <code>server_name www.mydomainname.com server_ip_address;</code></p>
  
  <p>When I launch a browser and go to my IP address or www.mydomainname.com, I get "Welcome to nginx!"</p>
  
  <p>Now, if I change the server block to listen on port 8080 (or another port) it works properly and browsing to  www.mydomainname.com:8080 or my IP address with that port displays the page I want.  But I want it to load properly on the default port 80.</p>
  
  <p>Based on a bit of reading, it sounds like nginx's default configuration file listens on port 80, and that it must be overriding my server block above.  But I have removed the nginx default configuration filesfrom /etc/nginx/sites-enabled and sites-available and restarted the nginx server and still have the same issue.  Can anyone explain where this default is being set and how to change it?</p>
  
  <p>I am working with Ubuntu 12.04 on a linode.</p>
  
  <p>Thank you for any tips or suggestions.</p>
  
  <p>EDIT: Here is my nginx.conf file from /etc/nginx/</p>
  
  <pre><code>user www-data;
  worker_processes 4;
  pid /var/run/nginx.pid;
  
  events {
      worker_connections 768;
      # multi_accept on;
  }
  
  http {
  
      ##
      # Basic Settings
      ##
  
      sendfile on;
      tcp_nopush on;
      tcp_nodelay on;
      keepalive_timeout 65;
      types_hash_max_size 2048;
      # server_tokens off;
  
      # server_names_hash_bucket_size 64;
      # server_name_in_redirect off;
  
      include /etc/nginx/mime.types;
      default_type application/octet-stream;
  
      ##
      # Logging Settings
      ##
  
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;
  
      ##
      # Gzip Settings
      ##
  
      gzip on;
      gzip_disable "msie6";
  
      # gzip_vary on;
      # gzip_proxied any;
      # gzip_comp_level 6;
      # gzip_buffers 16 8k;
      # gzip_http_version 1.1;
      # gzip_types text/plain text/css application/json application/x-    javascript text/xml application/xml application/xml+rss text/javascript;
  
      ##
      # nginx-naxsi config
      ##
      # Uncomment it if you installed nginx-naxsi
      ##
  
      #include /etc/nginx/naxsi_core.rules;
  
      ##
      # nginx-passenger config
      ##
      # Uncomment it if you installed nginx-passenger
      ##
  
      #passenger_root /usr;
      #passenger_ruby /usr/bin/ruby;
  
      ##
      # Virtual Host Configs
      ##
  
      include /etc/nginx/conf.d/*.conf;
      include /etc/nginx/sites-enabled/*;
  }
  
  
  #mail {
  #   # See sample authentication script at:
  #   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
  # 
  #   # auth_http localhost/auth.php;
  #   # pop3_capabilities "TOP" "USER";
  #   # imap_capabilities "IMAP4rev1" "UIDPLUS";
  # 
  #   server {
  #       listen     localhost:110;
  #       protocol   pop3;
  #       proxy      on;
  #   }
  # 
  #   server {
  #       listen     localhost:143;
  #       protocol   imap;
  #       proxy      on;
  #   }
  #}
  </code></pre>
  
  <p>...and here is my default file from /etc/nginx/sites-enabled/:</p>
  
  <pre><code># You may add here your
  # server {
  #   ...
  # }
  # statements for each of your virtual hosts to this file
  
  ##
  # You should look at the following URL's in order to grasp a solid understanding
  # of Nginx configuration files in order to fully unleash the power of Nginx.
  # http://wiki.nginx.org/Pitfalls
  # http://wiki.nginx.org/QuickStart
  # http://wiki.nginx.org/Configuration
  #
  # Generally, you will want to move this file somewhere, and start with a clean
  # file but keep this around for reference. Or just disable in sites-enabled.
  #
  # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
  ##
  
  server {
      #listen   80; ## listen for ipv4; this line is default and implied
      #listen   [::]:80 default ipv6only=on; ## listen for ipv6
  
      root /usr/share/nginx/www;
      index index.html index.htm;
  
      # Make site accessible from http://localhost/
      server_name localhost;
  
      location / {
          # First attempt to serve request as file, then
          # as directory, then fall back to index.html
          try_files $uri $uri/ /index.html;
          # Uncomment to enable naxsi on this location
          # include /etc/nginx/naxsi.rules
      }
  
      location /doc/ {
          alias /usr/share/doc/;
          autoindex on;
          allow 127.0.0.1;
          deny all;
      }
  
      # Only for nginx-naxsi : process denied requests
      #location /RequestDenied {
          # For example, return an error code
          #return 418;
      #}
  
      #error_page 404 /404.html;
  
      # redirect server error pages to the static page /50x.html
      #
      #error_page 500 502 503 504 /50x.html;
      #location = /50x.html {
      #   root /usr/share/nginx/www;
      #}
  
      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      #
      #location ~ \.php$ {
      #   fastcgi_split_path_info ^(.+\.php)(/.+)$;
      #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
      #
      #   # With php5-cgi alone:
      #   fastcgi_pass 127.0.0.1:9000;
      #   # With php5-fpm:
      #   fastcgi_pass unix:/var/run/php5-fpm.sock;
      #   fastcgi_index index.php;
      #   include fastcgi_params;
      #}
  
      # deny access to .htaccess files, if Apache's document root
      # concurs with nginx's one
      #
      #location ~ /\.ht {
      #   deny all;
      #}
  }
  
  
  # another virtual host using mix of IP-, name-, and port-based configuration
  #
  #server {
  #   listen 8000;
  #   listen somename:8080;
  #   server_name somename alias another.alias;
  #   root html;
  #   index index.html index.htm;
  #
  #   location / {
  #       try_files $uri $uri/ /index.html;
  #   }
  #}
  
  
  # HTTPS server
  #
  #server {
  #   listen 443;
  #   server_name localhost;
  #
  #   root html;
  #   index index.html index.htm;
  #
  #   ssl on;
  #   ssl_certificate cert.pem;
  #   ssl_certificate_key cert.key;
  #
  #   ssl_session_timeout 5m;
  #
  #   ssl_protocols SSLv3 TLSv1;
  #   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
  #   ssl_prefer_server_ciphers on;
  #
  #   location / {
  #       try_files $uri $uri/ /index.html;
  #   }
  #}
  </code></pre>
  
  <p>Note: I did move the file out of sites-enabled and sites-available.  Thanks!</p>