CONTENT
- CHANGES
Szukaj
#top Instalacja¶
Instalację serwera Nginx można wykonać na różne sposoby: od kompilacji ze źdródeł poprzez instalację pojedynczych paczek rpm za pomocą polecenia rpm skończywszy na instalacja z użyciem menedżera pakietów, który zainstaluje wszystkie niezbędne paczki wraz zależnościami.
Celem niniejszego dokumentu nie jest rozważanie różnych metod instalacji tylko nieco usprawnienie użyteczności konfiguracji serwera Nginx po zainstalowaniu oraz wprowadzenie porządku / hierarchi położenia plików z których korzysta usługa w strukturze katalogowej.
Zgodnie definicją
FHS
(en.wiki, pl.wiki): katalog /srv
zawiera: Data for services provided by this system
toteż jako katalog w którym Nginx będzie przechowywał dane został wybrany: /srv/nginx
i zostanie on utworzony z odpowiednimi atrybutami wraz ze stosownymi podkatalogami:/srv/nginx/error
- z przeznaczeniem na lokalizację stron kodów błędów HTTP (poprzednio /usr/share/nginx/html
),/srv/nginx/vhosts
- z przeznaczeniem na virtualne domeny vhosts serwerwowane przez serwer (nowoutworzony).Wszystko to zostało opisane poniżej.
#top Postinstalacyjna konfiguracja¶
#top Set default setting in config file¶
# sed 's,^\(.*access_log.*\)$, log_format combined '\''$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'\'';\n\n\1,g' -i /etc/nginx/nginx.conf # nginx: [emerg] duplicate "log_format" name "combined" in /etc/nginx/nginx.conf:28 # The configuration always includes the predefined "combined" format: sed 's,^\(.*access_log.*\)$, log_format vcombined '\''$host $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'\'';\n\n\1,g' -i /etc/nginx/nginx.conf
#top Create directory root structure¶
mkdir -p /srv/nginx/error cp -av /usr/share/nginx/html/404.html /srv/nginx/error/404.html cp -av /usr/share/nginx/html/50x.html /srv/nginx/error/50x.html cp -av /usr/share/nginx/html/nginx-logo.png /srv/nginx/error/nginx-logo.png cp -av /usr/share/nginx/html/poweredby.png /srv/nginx/error/poweredby.png
#top Enable virtual hosts¶
mkdir /etc/nginx/vhosts sed 's,^\(.*include.*/etc/nginx/conf.d/.*\)$,\1\n # Virtual hosts\n include /etc/nginx/vhosts/*.conf;,g' -i /etc/nginx/nginx.conf
#top Comment out default vhost¶
Poniższe kroki należy wykonać dla nginx w wersji poniżej 1.0, wersje powyżej 1.0 zawierają już definicję domyślnego virtual hosta w osobnym pliku
/etc/nginx/conf.d/default.conf
.-------------------------------------------------
nginx <= 0.8.55 (CentOS 5.*)
-------------------------------------------------
W głównym pliku konfiguracyjnym Nginx
/etc/nginx/nginx.conf
należy zakomentować konfigurację domyślnego virtual hosta, którego definicja została przeniesiona do osobnego pliku /etc/nginx/vhosts/default.conf
. Po wprowadzeniu zmian wykomentowana definicja virtual hosta znajdująca się w pliku /etc/nginx/nginx.conf
będzie wyglądać analogicznie jak poniżej.[...] # # The default server # # server { # listen 80; # server_name _; #charset koi8-r; #access_log logs/host.access.log main; # location / { # root /usr/share/nginx/html; # index index.html index.htm; # } # error_page 404 /404.html; # location = /404.html { # root /usr/share/nginx/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/html; # } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} # } [...]
Poniższe kroki należy wykonać dla nginx w wersji powyżej 1.0, wersje powyżej 1.0 zawierają już definicję domyślnego virtual hosta w osobnym pliku
/etc/nginx/conf.d/default.conf
.-------------------------------------------------
nginx >= 1.0.15 (CentOS 6.*)
-------------------------------------------------
Comment out default vhost in /etc/nginx/conf.d/default.conf
sed 's,^,#,g' -i /etc/nginx/conf.d/default.conf
#top Configure default virtual host¶
Zgodnie z dokumentacją dotyczącą przetwarzania ządania przez nginx:
http://nginx.org/en/docs/http/request_processing.html
The default_server parameter has been available since version 0.8.21.
In earlier versions the default parameter should be used instead.
default vhost require: listen=default_server + server_name=_
------------------------------------------------------------------------------------------------------
listen 80 default_server; server_name _;
Po wprowadzeniu stosownych zmian konfiguracja domyślnego virtual host powinna przedstawiać się analogicznie do poniższej:
# # The default server # server { #limit_conn myzone 10; listen 80 default_server; server_name _; server_name localhost; server_name 127.0.0.1; #charset koi8-r; access_log /var/log/nginx/default.access.log vcombined; error_log /var/log/nginx/default.error.log error; location / { root /srv/nginx/vhosts/default; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /srv/nginx/error; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/nginx/error; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
create needed DocumentRoot for default virtual host:
mkdir -p /srv/nginx/vhosts/default echo "vhosts / default ($HOSTNAME)" > /srv/nginx/vhosts/default/index.html echo "vhosts / default ($HOSTNAME)" > /srv/nginx/vhosts/default/default.html
#top Create second $HOSTNAME virtual host¶
cat >> /etc/nginx/conf.d/virtual.conf << EOF # # $HOSTNAME # server { #limit_conn myzone 10; listen 80; server_name $HOSTNAME; #charset koi8-r; access_log /var/log/nginx/${HOSTNAME//./_}.access.log main; error_log /var/log/nginx/${HOSTNAME//./_}.error.log error; location / { root /srv/nginx/vhosts/${HOSTNAME//./_}; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /srv/nginx/error; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/nginx/error; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } EOF
create needed DocumentRoot for $HOSTNAME virtual host
mkdir -p /srv/nginx/vhosts/$HOSTNAME echo "vhosts / $HOSTNAME" > /srv/nginx/vhosts/$HOSTNAME/index.html echo "vhosts / $HOSTNAME" > /srv/nginx/vhosts/$HOSTNAME/$HOSTNAME.html
#top Create ssl $HOSTNAME virtual host¶
cat >> /etc/nginx/conf.d/ssl.conf << EOF # # $HOSTNAME:443 - HTTPS server configuration # server { listen 443; server_name $HOSTNAME; access_log /var/log/nginx/${HOSTNAME//./_}.ssl.access.log main; error_log /var/log/nginx/${HOSTNAME//./_}.ssl.error.log error; ssl on; ssl_certificate /etc/pki/tls/certs/$HOSTNAME.crt; ssl_certificate_key /etc/pki/tls/certs/$HOSTNAME.key; # ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; ssl_prefer_server_ciphers on; location / { root /srv/nginx/vhosts/$HOSTNAME; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /srv/nginx/error; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /srv/nginx/error; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } EOF
#top Start nginx server¶
/etc/init.d/nginx start
tail -f /var/log/nginx/error.log
Zmodyfikowany ostatnio: 2015/02/22 11:42:52 (10 lat temu),
textsize: 10,5 kB,
htmlsize: 17,5 kB
Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników