Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Set another default user than root for security reasons
- #user www www;
- # As a thumb rule: One per CPU. If you are serving a large amount
- # of static files, which requires blocking disk reads, you may want
- # to increase this from the number of cpu_cores available on your
- # system.
- #
- # The maximum number of connections for Nginx is calculated by:
- # max_clients = worker_processes * worker_connections
- worker_processes 1;
- # Maximum file descriptors that can be opened per process
- # This should be > worker_connections
- worker_rlimit_nofile 8192;
- events {
- # When you need > 8000 * cpu_cores connections, you start optimizing
- # your OS, and this is probably the point at where you hire people
- # who are smarter than you, this is *a lot* of requests.
- worker_connections 8000;
- }
- # Change these paths to somewhere that suits you!
- error_log logs/nginx-error.log;
- pid logs/nginx.pid;
- http {
- # Set the mime-types via the mime.types external file
- include nginx-mime.types;
- # And the fallback mime-type
- default_type application/octet-stream;
- # Format for our log files
- log_format main '$remote_addr - $remote_user [$time_local] $status '
- '"$request" $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
- # Click tracking!
- access_log logs/access.log main;
- # ~2 seconds is often enough for HTML/CSS, but connections in
- # Nginx are cheap, so generally it's safe to increase it
- keepalive_timeout 20;
- # You usually want to serve static files with Nginx
- sendfile on;
- tcp_nopush on; # off may be better for Comet/long-poll stuff
- tcp_nodelay off; # on may be better for Comet/long-poll stuff
- # Enable Gzip:
- gzip on;
- gzip_http_version 1.0;
- gzip_comp_level 5;
- gzip_min_length 512;
- gzip_buffers 4 8k;
- gzip_proxied any;
- gzip_types
- # text/html is always compressed by HttpGzipModule. Durrrr
- text/css
- text/javascript
- text/xml
- text/plain
- text/x-component
- application/javascript
- application/x-javascript
- application/json
- application/xml
- application/rss+xml
- font/truetype
- font/opentype
- application/vnd.ms-fontobject
- image/svg+xml;
- # This should be turned on if you are going to have pre-compressed copies (.gz) of
- # static files available. If not it should be left off as it will cause extra I/O
- # for the check. It would be better to enable this in a location {} block for
- # a specific directory:
- # gzip_static on;
- gzip_disable "MSIE [1-6]\.";
- gzip_vary on;
- # Directories
- client_body_temp_path tmp/client_body/ 2 2;
- fastcgi_temp_path tmp/fastcgi/;
- proxy_temp_path tmp/proxy/;
- uwsgi_temp_path tmp/uwsgi/;
- client_max_body_size 5M;
- # Logging
- access_log logs/nginx-access.log combined;
- #
- server {
- listen 443;
- if ($host ~* ^([a-z0-9\-]+\.(com|net|org))$) {
- set $host_with_www www.$1;
- set $wwwtoggle 1;
- #rewrite ^(.*)$ $scheme://$host_with_www$1 permanent;
- }
- if ($host ~ "buffbrew.ticketometer.com") {
- rewrite ^(.*)$ http://www.ticketometer.com/Open-House-at-Buffalo-Bayou-Brewing-Company permanent;
- }
- server_name www.ticketometer.com;
- location ~ ^/(img|images|js|css|static|learn-more)/ {
- root /home/ubuntu/site/app/ticketometer/static;
- #expire max;
- }
- location ~* ^.+\.(ico|js|css|txt|png|jpg|html)$ {
- root /home/ubuntu/site/app/ticketometer/static;
- #expire max;
- }
- set $ssltoggle 2;
- if ($uri ~ ^/(img|images|js|css|static|learn-more)/) {
- set $ssltoggle 1;
- }
- if ($request_uri = '/') {
- set $ssltoggle 1;
- }
- if ($uri ~ "/learn") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/order") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/order/addtocart") {
- set $ssltoggle 2;
- }
- if ($uri ~ "/facebook") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/my") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/event") {
- set $ssltoggle 1;
- }
- if ($wwwtoggle = 1) {
- set $ssltoggle "{$ssltoggle}W";
- }
- if ($ssltoggle = 2W) {
- rewrite ^/(.*) http://$host_with_www/$1 permanent;
- }
- if ($ssltoggle != 1) {
- rewrite ^(.*)$ http://$server_name$1 permanent;
- }
- if ($wwwtoggle = 1) {
- rewrite ^/(.*) $scheme://$host_with_www/$1 permanent;
- }
- #Specify a charset
- charset utf-8;
- # Custom 404 page
- error_page 404 404.html;
- # No default expire rule. This config mirrors that of apache as outlined in the
- # html5-boilerplate .htaccess file. However, nginx applies rules by location, the apache rules
- # are defined by type. A concequence of this difference is that if you use no file extension in
- # the url and serve html, with apache you get an expire time of 0s, with nginx you'd get an
- # expire header of one month in the future (if the default expire rule is 1 month).
- # Therefore, do not use a default expire rule with nginx unless your site is completely static
- # cache.appcache, your document html and data
- location ~* \.(?:manifest|appcache|html|xml|json)$ {
- expires -1;
- access_log logs/static.log;
- }
- # Feed
- location ~* \.(?:rss|atom)$ {
- expires 1h;
- add_header Cache-Control "public";
- }
- # Favicon
- location ~* \.ico$ {
- expires 1w;
- access_log off;
- add_header Cache-Control "public";
- }
- # Media: images, video, audio, HTC, WebFonts
- location ~* \.(?:jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
- expires 1M;
- access_log off;
- add_header Cache-Control "public";
- }
- # CSS and Javascript
- location ~* \.(?:css|js)$ {
- expires 1y;
- access_log off;
- add_header Cache-Control "public";
- }
- # opt-in to the future
- add_header "X-UA-Compatible" "IE=Edge,chrome=1";
- # Finally, send all non-media requests to the uwsgi server.
- location / {
- send_timeout 360;
- uwsgi_pass unix:/home/ubuntu/site/sock/uwsgi.sock;
- include uwsgi_params;
- }
- }
- server {
- if ($host ~* ^([a-z0-9\-]+\.(com|net|org))$) {
- set $host_with_www www.$1;
- set $wwwtoggle 1;
- #rewrite ^(.*)$ $scheme://$host_with_www$1 permanent;
- }
- if ($host ~ "buffbrew.ticketometer.com") {
- rewrite ^(.*)$ http://www.ticketometer.com/Open-House-at-Buffalo-Bayou-Brewing-Company permanent;
- }
- # listen 80 default_server deferred; # for Linux
- # listen 80 default_server accept_filter=httpready; # for FreeBSD
- listen 80;
- server_name www.ticketometer.com;
- # e.g. "localhost" to accept all connections, or "www.example.com"
- # to handle the requests for "example.com" (and www.example.com)
- # server_name www.example.com;
- # Path for static files
- # serve static files
- location ~ ^/(img|images|js|css|static|learn-more)/ {
- root /home/ubuntu/site/app/ticketometer/static;
- #expire max;
- }
- location ~* ^.+\.(ico|js|css|txt|png|jpg|html)$ {
- root /home/ubuntu/site/app/ticketometer/static;
- #expire max;
- }
- #if ($uri = '/') {
- # set $ssltoggle 1;
- #}
- location = / {
- rewrite ^(.*)$ https://$server_name$1 permanent;
- }
- if ($uri ~ "/learn") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/order") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/order/addtocart") {
- set $ssltoggle 2;
- }
- if ($uri ~ "/my") {
- set $ssltoggle 1;
- }
- if ($uri ~ "/event") {
- set $ssltoggle 1;
- }
- if ($wwwtoggle = 1) {
- set $ssltoggle "{$ssltoggle}W";
- }
- if ($ssltoggle = 1W) {
- rewrite ^/(.*) https://$host_with_www/$1 permanent;
- }
- if ($ssltoggle = 1) {
- rewrite ^(.*)$ https://$server_name$1 permanent;
- }
- if ($wwwtoggle = 1) {
- rewrite ^/(.*) $scheme://$host_with_www/$1 permanent;
- }
- #Specify a charset
- charset utf-8;
- # Custom 404 page
- error_page 404 404.html;
- # No default expire rule. This config mirrors that of apache as outlined in the
- # html5-boilerplate .htaccess file. However, nginx applies rules by location, the apache rules
- # are defined by type. A concequence of this difference is that if you use no file extension in
- # the url and serve html, with apache you get an expire time of 0s, with nginx you'd get an
- # expire header of one month in the future (if the default expire rule is 1 month).
- # Therefore, do not use a default expire rule with nginx unless your site is completely static
- # cache.appcache, your document html and data
- location ~* \.(?:manifest|appcache|html|xml|json)$ {
- expires -1;
- access_log logs/static.log;
- }
- # Feed
- location ~* \.(?:rss|atom)$ {
- expires 1h;
- add_header Cache-Control "public";
- }
- # Favicon
- location ~* \.ico$ {
- expires 1w;
- access_log off;
- add_header Cache-Control "public";
- }
- # Media: images, video, audio, HTC, WebFonts
- location ~* \.(?:jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|eot|mp4|ogg|ogv|webm)$ {
- expires 1M;
- access_log off;
- add_header Cache-Control "public";
- }
- # CSS and Javascript
- location ~* \.(?:css|js)$ {
- expires 1y;
- access_log off;
- add_header Cache-Control "public";
- }
- # opt-in to the future
- add_header "X-UA-Compatible" "IE=Edge,chrome=1";
- # Finally, send all non-media requests to the uwsgi server.
- location / {
- send_timeout 360;
- uwsgi_pass unix:/home/ubuntu/site/sock/uwsgi.sock;
- include uwsgi_params;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement