Разлика между версии на „Инсталиране на nginx под Ubuntu“
(→Автоматизиран скрипт nginx_install.sh) |
|||
Ред 165: | Ред 165: | ||
location / { | location / { | ||
− | try_files $uri $uri/ /index.php?page=$request_uri; | + | try_files \$uri \$uri/ /index.php?page=\$request_uri; |
} | } | ||
− | location ~ \.php$ { | + | location ~ \.php\$ { |
− | try_files $uri =404; | + | try_files \$uri =404; |
include fastcgi_params; | include fastcgi_params; | ||
− | fastcgi_pass unix:/ | + | fastcgi_pass unix:/var/run/php5-fpm.sock; |
#fastcgi_pass 127.0.0.1:9000; | #fastcgi_pass 127.0.0.1:9000; | ||
fastcgi_index index.php; | fastcgi_index index.php; | ||
− | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | + | fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; |
fastcgi_param HTTPS off; | fastcgi_param HTTPS off; | ||
} | } |
Версия от 15:17, 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:/var/run/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! ****"