Wie würdet ihr eine Conf für Nginx schreiben?
Posted: 2013-06-17 22:08
Hallo,
ich habe kürzlich meinen Server auf Freebsd 9.1 umgestellt, und bin auch gleich auf den kleiner Webserver Nginx mit PHP-FPM umgesiedelt.
Meine Art der Konfiguration, bereitet mir aber ein paar Probleme, und ich bin mir eben nicht mehr sicher welche Konfiguration eigentlich nun die Beste für mein Vorhaben ist, und ich vor lauter Confs Snipes ein wenig den Überblick verloren habe, und am Liebsten alles in die Ecke schmeißen will, schreibe ich hier rein.
Zum Beispiel habe ich eine Haupdomain, und möchte zu dieser eine Subdomain schaffen, dies habe ich wie beschrieben so konfiguriert und meine Confs in die Ordner Unterordner vhost1 vhost2 und vhost3 abgelegt damit ich durch die anderen Domains verwirrt werde. Und es funktioniert ja auch.
Kopfzerbrechen bereitet mir das wenn ich eine Seite mit www. lade langsamer lädt als ohne.
Ich habe dieses Konfigurationsbeispiel http://bin63.com/how-to-install-nginx-a ... on-freebsd genommen da mir dies am Einfachsten und logisch erschien.
Meine nginx.conf sieht folgendermaßen aus:
Die Hauptdomain sieht so aus:
Die dazugehörige SubDomain Conf sieht so aus:
Ich weiß eben nicht ob das Prinzip dem ich nachgehe das Richtige ist, oder ob es einen einfacheren Weg gibt.
ich habe kürzlich meinen Server auf Freebsd 9.1 umgestellt, und bin auch gleich auf den kleiner Webserver Nginx mit PHP-FPM umgesiedelt.
Meine Art der Konfiguration, bereitet mir aber ein paar Probleme, und ich bin mir eben nicht mehr sicher welche Konfiguration eigentlich nun die Beste für mein Vorhaben ist, und ich vor lauter Confs Snipes ein wenig den Überblick verloren habe, und am Liebsten alles in die Ecke schmeißen will, schreibe ich hier rein.
Zum Beispiel habe ich eine Haupdomain, und möchte zu dieser eine Subdomain schaffen, dies habe ich wie beschrieben so konfiguriert und meine Confs in die Ordner Unterordner vhost1 vhost2 und vhost3 abgelegt damit ich durch die anderen Domains verwirrt werde. Und es funktioniert ja auch.
Kopfzerbrechen bereitet mir das wenn ich eine Seite mit www. lade langsamer lädt als ohne.
Ich habe dieses Konfigurationsbeispiel http://bin63.com/how-to-install-nginx-a ... on-freebsd genommen da mir dies am Einfachsten und logisch erschien.
Meine nginx.conf sieht folgendermaßen aus:
Code: Select all
pid /var/run/nginx.pid;
user www www; # you can also make a jailed user like _nginx if you want
error_log /var/log/nginx/error.log crit;
worker_processes 4;
events {
worker_connections 2048;
}
http {
client_body_timeout 2s;
client_header_timeout 2s;
send_timeout 2s;
keepalive_timeout 65;
spdy_keepalive_timeout 180s;
spdy_recv_timeout 2s;
default_type application/octet-stream;
gzip on;
gzip_http_version 1.0;
gzip_static on;
gzip_vary on;
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
limit_req_zone $binary_remote_addr zone=flood:10m rate=10r/s;
ignore_invalid_headers on;
include /usr/local/etc/nginx/mime.types;
output_buffers 1 512K;
postpone_output 0;
recursive_error_pages on;
reset_timedout_connection on;
sendfile off;
server_tokens off;
server_name_in_redirect off;
spdy_headers_comp 5;
spdy_max_concurrent_streams 20;
tcp_nodelay on;
tcp_nopush off;
proxy_temp_path /usr/local/etc/nginx/proxy;
proxy_cache_path /usr/local/etc/nginx/cache levels=1:2 keys_zone=staticfilecache:50m max_size=300m;
proxy_cache_key "$scheme://$host$request_uri";
include /usr/local/etc/nginx/vhost1/*.conf;
include /usr/local/etc/nginx/vhost2/*.conf;
include /usr/local/etc/nginx/vhost3/*.conf;
}
Code: Select all
server {
listen localhost:80;
server_name www.domain.com domain.com;
}
server {
listen 80;
server_name www.domain.com domain.com;
root /var/www/vhost3/domain.com;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 24h;
proxy_cache_valid any 10m;
location ~* \.(jpeg|jpg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|avi|mp3|mov|docx|pptx|xlsx|cfg|odt)$ {
expires 864000;
}
location / {
index index.php index.html index.htm;
if (!-e $request_filename) {
#Woltlab rewrite rules
rewrite ^/tag/([0-9]+)-([^/.]*)/?$ /index.php?page=TaggedObjects&tagID=$1 last;
rewrite ^/user/([0-9]+)-([^/.]*)/?$ /index.php?page=User&userID=$1&username=$2 last;
rewrite ^/([^/]+/)*([^/.]+)/([0-9]+)-([^/.]*)/last-post.html$ /index.php?page=Thread&threadID=$3&action=lastPost last;
rewrite ^/([^/]+/)*([^/.]+)/([0-9]+)-([^/.]*)/first-new-post.html$ /index.php?page=Thread&threadID=$3&action=firstNew last;
rewrite ^/([^/]+/)*([^/.]+)/p([0-9]+)-([^/.]*)/?$ /index.php?page=Thread&postID=$3 last;
rewrite ^/([^/]+/)*([^/.]+)/([0-9]+)-([^/.]*)/index([0-9]+).html$ /index.php?page=Thread&threadID=$3&pageNo=$5 last;
rewrite ^/([^/]+/)*([^/.]+)/([0-9]+)-([^/.]*)/?$ /index.php?page=Thread&threadID=$3 last;
rewrite ^/([^/]+/)*board([0-9]+)-([^/.]+)/index([0-9]+).html$ /index.php?page=Board&boardID=$2&pageNo=$4 last;
rewrite ^/([^/]+/)*board([0-9]+)-([^/.]+)/?$ /index.php?page=Board&boardID=$2 last;
rewrite ^/index.html$ /index.php?page=Index last;
rewrite ^/user/?$ /index.php?page=MembersList last;
rewrite ^/user/search.html$ /index.php?form=MembersSearch last;
rewrite ^/user/team.html$ /index.php?page=Team last;
rewrite ^/help/([a-z.]+).html$ /index.php?page=Help&item=$1 last;
rewrite ^/help/?$ /index.php?page=Help last;
rewrite ^/user/online.html$ /index.php?page=UsersOnline last;
rewrite ^/user/([0-9]+)-([^/.]*)/mail.html$ /index.php?form=Mail&userID=$1 last;
rewrite ^/user/([0-9]+)-([^/.]*)/pm.html$ /index.php?form=PMNew&userID=$1 last;
rewrite ^/user/([0-9]+)-([^/.]*)/v-card.vcf$ /index.php?page=VCard&userID=$1 last;
rewrite ^/mark-all-as-read.html$ /index.php?action=BoardMarkAllAsRead last;
rewrite ^/(board[0-9]+-[^/.]+/)*board([0-9]+)-([^/.]+)/mark-as-read.html$ /index.php?action=BoardMarkAsRead&boardID=$2 last;
rewrite ^/(board[0-9]+-[^/.]+/)*board([0-9]+)-([^/.]+)/thread-add.html$ /index.php?form=ThreadAdd&boardID=$2 last;
rewrite ^/(board[0-9]+-[^/.]+/)*board([0-9]+)-([^/.]+)/([0-9]+)-([^/.]*)/post-add.html$ /index.php?form=PostAdd&threadID=$4 last;
rewrite ^/login.html$ /index.php?form=UserLogin last;
rewrite ^/register.html$ /index.php?page=Register last;
rewrite ^/lost-password.html$ /index.php?form=LostPassword last;
rewrite ^/search.html$ /index.php?form=Search last;
rewrite ^/legal-notice.html$ /index.php?page=LegalNotice last;
rewrite ^/rules.html$ /index.php?page=Rules last;
rewrite ^/contact.html$ /index.php?form=Contact last;
}
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
limit_req zone=flood burst=15 nodelay;
proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
proxy_cache staticfilecache;
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
# fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /\.ht {
deny all;
}
}Code: Select all
server {
listen localhost:80;
server_name api.domain.com;
}
server {
listen 80;
server_name api.domain.com;
root /var/www/vhost3/api.domain.com;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 24h;
proxy_cache_valid any 10m;
location ~* \.(jpeg|jpg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|avi|mp3|mov|docx|pptx|xlsx|cfg|odt)$ {
expires 864000;
}
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~ \.php$ {
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
limit_req zone=flood burst=15 nodelay;
fastcgi_pass unix:/var/run/php-fpm.sock;
proxy_cache_key "$scheme://$host$request_uri $do_not_cache";
proxy_cache staticfilecache;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location ~ /\.ht {
deny all;
}
}