Разлика между версии на „Инсталиране на nginx под Ubuntu“
(→Инсталиране на MySQL сървър (опционално)) |
|||
| Ред 115: | Ред 115: | ||
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
sudo apt-get install mysql-server mysql-client | sudo apt-get install mysql-server mysql-client | ||
| + | </pre> | ||
| + | |||
| + | ===Автоматизиран скрипт nginx_install.sh=== | ||
| + | <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word"> | ||
| + | #!/bin/bash | ||
| + | # This script will test if you have given a leap year or not. | ||
| + | |||
| + | echo "Type the domain name, followed by [ENTER]:" | ||
| + | |||
| + | read server_name | ||
| + | |||
| + | echo "**** Updating the system ****" | ||
| + | sudo apt-get update | ||
| + | sudo apt-get upgrade -y | ||
| + | clear | ||
| + | |||
| + | echo "**** Intalling MySQL ****" | ||
| + | sudo apt-get install mysql-server mysql-client -y | ||
| + | clear | ||
| + | |||
| + | echo "**** Installing nginx ****" | ||
| + | sudo apt-get install nginx -y | ||
| + | clear | ||
| + | |||
| + | echo "**** Installing php-fpm ****" | ||
| + | sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache -y | ||
| + | clear | ||
| + | |||
| + | echo "**** Modifying php.ini ****" | ||
| + | sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/g' /etc/php5/fpm/php.ini | ||
| + | sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 512M/g' /etc/php5/fpm/php.ini | ||
| + | sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php5/fpm/php.ini | ||
| + | clear | ||
| + | |||
| + | echo "**** Modifying nginx.conf ****" | ||
| + | sudo sed -i 's/keepalive_timout 65/keepalive_timout 2/g' /etc/nginx/nginx.conf | ||
| + | clear | ||
| + | |||
| + | echo "**** Creating default nginx site configuration ****" | ||
| + | sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original | ||
| + | sudo echo "server { | ||
| + | listen 80; | ||
| + | listen [::]:80 default ipv6only=on; | ||
| + | |||
| + | root /var/www/; | ||
| + | index index.php index.html index.htm; | ||
| + | |||
| + | server_name $server_name; | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ /index.php?page=$request_uri; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | try_files $uri =404; | ||
| + | include fastcgi_params; | ||
| + | fastcgi_pass unix:/tmp/php5-fpm.sock; | ||
| + | #fastcgi_pass 127.0.0.1:9000; | ||
| + | fastcgi_index index.php; | ||
| + | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
| + | fastcgi_param HTTPS off; | ||
| + | } | ||
| + | }" >> /etc/nginx/sites-available/default | ||
| + | clear | ||
| + | |||
| + | echo "**** Restarting the servicesw ****" | ||
| + | sudo service php5-fpm restart | ||
| + | sudo service nginx-restart | ||
| + | clear | ||
| + | |||
| + | echo "**** All done! ****" | ||
| + | |||
</pre> | </pre> | ||
Версия от 15:03, 17 август 2015
Nginx е безплатен HTTP, IMAP/POP3 и "Reverse proxy" сървър с отворен код.
Съдържание
- 1 Инсталиране на nginx под Ubuntu Server
- 1.1 Обновяване на Ubuntu
- 1.2 Инсталиране на nginx
- 1.3 Инсталиране и конфигуриране на php-fpm
- 1.4 Конфигуриране на сървъра (nginx.conf)
- 1.5 Конфигуриране на сайт (default)
- 1.6 Стартиране на сървъра
- 1.7 Проверка на сървъра
- 1.8 Инсталиране на MySQL сървър (опционално)
- 1.9 Автоматизиран скрипт nginx_install.sh
Инсталиране на nginx под Ubuntu Server
Посочените конфигурации са тествани с Ubuntu Server 14.10.
Основните стъпки при инсталирането и конфигурирането на nginx са:
- Обновяване на Ubuntu Server (опционално)
- Инсталиране на nginx
- Инсталиране и конфигуриране на php-fpm
- Конфигуриране на сървъра (nginx.conf)
- Конфигуриране на сайт (default)
- Стартиране на сървъра
- Проверка на сървъра (опционално)
Обновяване на Ubuntu
sudo apt-get update sudo apt-get upgrade
Инсталиране на nginx
sudo apt-get install nginx
Инсталиране и конфигуриране на php-fpm
PHP-FPM (FastCGI Process Manager) е алтернативно PHP FastCGI решение, оптимизирано за работа при високо натоварване.
sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache
Възможни промени в /etc/php5/fpm/php.ini
cgi.fix_pathinfo=1 upload_max_filesize = 512M post_max_size = 128M
Конфигуриране на сървъра (nginx.conf)
Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните.
Промени в /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
keepalive_timout 2;
fastcgi_read_timeout 600;
Забележка: worker_processes е равна на броя на ядрата на процесора.
Конфигуриране на сайт (default)
Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните.
Примерна конфигурация за CMS Made Simple.
Промени в /etc/nginx/sites-available/default
server {
listen 80;
listen [::]:80 default ipv6only=on;
root /var/www/;
index index.php index.html index.htm;
server_name www.test.com;
location / {
try_files $uri $uri/ /index.php?page=$request_uri;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/tmp/php5-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
Забележка: Конфигурации за пренаписване(rewrite) за най-често използваните системи са поместени на http://wiki.nginx.org/Main
Стартиране на сървъра
sudo service php5-fpm restart sudo service nginx start
Проверка на сървъра
Проверката на производителността и стабилността на сървъра може да се извърши чрез autobench.
Инсталиране на MySQL сървър (опционално)
sudo apt-get install mysql-server mysql-client
Автоматизиран скрипт nginx_install.sh
#!/bin/bash
# This script will test if you have given a leap year or not.
echo "Type the domain name, followed by [ENTER]:"
read server_name
echo "**** Updating the system ****"
sudo apt-get update
sudo apt-get upgrade -y
clear
echo "**** Intalling MySQL ****"
sudo apt-get install mysql-server mysql-client -y
clear
echo "**** Installing nginx ****"
sudo apt-get install nginx -y
clear
echo "**** Installing php-fpm ****"
sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache -y
clear
echo "**** Modifying php.ini ****"
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/g' /etc/php5/fpm/php.ini
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 512M/g' /etc/php5/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php5/fpm/php.ini
clear
echo "**** Modifying nginx.conf ****"
sudo sed -i 's/keepalive_timout 65/keepalive_timout 2/g' /etc/nginx/nginx.conf
clear
echo "**** Creating default nginx site configuration ****"
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
sudo echo "server {
listen 80;
listen [::]:80 default ipv6only=on;
root /var/www/;
index index.php index.html index.htm;
server_name $server_name;
location / {
try_files $uri $uri/ /index.php?page=$request_uri;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/tmp/php5-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}" >> /etc/nginx/sites-available/default
clear
echo "**** Restarting the servicesw ****"
sudo service php5-fpm restart
sudo service nginx-restart
clear
echo "**** All done! ****"