新聞中心
Nginx 特性

Nginx 性能穩(wěn)定、功能豐富、運(yùn)維簡(jiǎn)單、處理靜態(tài)文件速度快且消耗系統(tǒng)資源極少。
1、相比 Apache,用 Nginx 作為 Web 服務(wù)器:使用資源更少,支持更多并發(fā)連接,效率更高。
2、作為負(fù)載均衡服務(wù)器:Nginx 既可在內(nèi)部直接支持 Rails 和 php,也可支持作為 HTTP 代理服務(wù)器對(duì)外進(jìn)行服務(wù)。Nginx 用 C 編寫而成, 不論是系統(tǒng)資源開(kāi)銷還是 CPU 使用效率都比 Perlbal 要好的多。
3、作為郵件代理服務(wù)器:Nginx 同時(shí)也是一款非常優(yōu)秀的郵件代理服務(wù)器(最早開(kāi)發(fā)這個(gè)產(chǎn)品的目的之一,是作為郵件代理服務(wù)器)。
4、反向代理可以根據(jù)url將請(qǐng)求轉(zhuǎn)向于不同用途的集群,比如圖片請(qǐng)求,轉(zhuǎn)向圖片服務(wù)器集群;視頻請(qǐng)求,轉(zhuǎn)身視頻服務(wù)器集群。
nginx是一款輕量級(jí)的web服務(wù)器/反向代理服務(wù)器/電子郵件代理服務(wù)器,安裝非常簡(jiǎn)單,配置文件也很簡(jiǎn)潔(還支持 perl 語(yǔ)法)。Nginx 支持平滑加載新配置,還能夠在不間斷服務(wù)的情況下進(jìn)行軟件版本升級(jí)。
Apache 特性
1、Apache 是 LAMP 架構(gòu)最核心的 Web Server,開(kāi)源、穩(wěn)定、模塊豐富是 Apache 的優(yōu)勢(shì)。但 Apache 的缺點(diǎn)是有些臃腫,內(nèi)存和 CPU 開(kāi)銷大,性能上有損耗,不如一些輕量級(jí)的 Web 服務(wù)器(譬如:Nginx、Tengine等)高效,輕量級(jí)的 Web 服務(wù)器對(duì)于靜態(tài)文件的響應(yīng)能力來(lái)說(shuō)遠(yuǎn)高于 Apache 服務(wù)器。
2、Apache 做為 Web Server 是負(fù)載 PHP 的最佳選擇,如果流量很大的話,可以采用 Nginx 來(lái)負(fù)載非 PHP 的 Web 請(qǐng)求。Nginx 是一個(gè)高性能的 HTTP 和反向代理服務(wù)器,Nginx 以其穩(wěn)定、豐富功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。Nginx 現(xiàn)能支持 PHP 和 FastCGI,也支持負(fù)載均衡和容錯(cuò),可和 Apache 配合使用,是輕量級(jí)的 HTTP 服務(wù)器的首選。
3、Web 服務(wù)器緩存也有多種方案,Apache 提供了自己的緩存模塊,也可以使用外加的 Squid 模塊進(jìn)行緩存,這兩種方式均可有效提高 Apache 的訪問(wèn)響應(yīng)能力。Squid Cache 是一個(gè) Web 緩存服務(wù)器,支持高效緩存,可作為網(wǎng)頁(yè)服務(wù)器的前置 cache 服務(wù)器緩存相關(guān)請(qǐng)求以提高 Web 服務(wù)器速度。把 Squid 放在 Apache 的前端來(lái)緩存 Web 服務(wù)器生成動(dòng)態(tài)內(nèi)容,而 Web 應(yīng)用程序只需要適當(dāng)?shù)卦O(shè)置頁(yè)面實(shí)效時(shí)間即可。如訪問(wèn)量巨大,則可考慮使用 memcache 作為分布式緩存。
4、PHP 的加速可使用 eAccelerator 加速器,eAccelerator 是一個(gè)自由開(kāi)放源碼的 PHP 加速器。它會(huì)優(yōu)化動(dòng)態(tài)內(nèi)容緩存,提高 PHP 腳本緩存性能,使 PHP 腳本在編譯狀態(tài)下,對(duì)服務(wù)器的開(kāi)銷幾乎完全消除。它還可對(duì)腳本起優(yōu)化作用,以加快其執(zhí)行效率。 使 PHP 程序代碼執(zhí)效率可提高 1-10 倍。
nginx優(yōu)點(diǎn):
- 輕量級(jí)服務(wù)器,相比較apache占用的資源更加少。
- 高并發(fā)。
- 配置文件的語(yǔ)法等簡(jiǎn)單易懂
- 社區(qū)活躍。
- 支持epoll模型。使得nginx可以支持高并發(fā)。
- 利用nginx可以對(duì)ip限速,可以限制連接數(shù)
環(huán)境:
CentOS 6.8 2.6.32-642.15.1.el6.x86_64
軟件:
libiconv-1.14.tar.gz
libmcrypt-2.5.8.tar.gz
mcrypt-2.6.8.tar.gz
mhash-0.9.9.9.tar.gz
mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz(二進(jìn)制版)
php-5.6.30.tar.gz
nginx-1.12.0.tar.gz
提示:在進(jìn)入正題之前一定要先去了解下nginx的工作原理和常用場(chǎng)景。
不要死記,多操作,多理解,自然就懂了。
看別人操作,不如自己操作。
要能清晰的了解同類產(chǎn)品的區(qū)別。
大綱:
- 安裝nginx
- 啟動(dòng)nginx
- 配置虛擬主機(jī)
- 安裝mysql二進(jìn)制版
- 安裝php
- 測(cè)試lnmp環(huán)境
nginx
1、安裝nginx
wget http:
//nginx
.org
/download/nginx-1
.12.0.
tar
.gz
tar
zxvf nginx-1.12.0.
tar
.gz
cd
nginx-1.12.0/
yum
install
gcc gcc-c++ zilb.x86_64 zlib-devel.x86_64 pcre-devel.x86_64 pcre.x86_64
openssl.x86_64 openssl-devel.x86_64-y
useradd
-M -s
/sbin/nologin
nginx
.
/configure
--help
.
/configure
--prefix=
/application/nginx1
.12.0 --user=nginx --group=nginx --with-pcre
--with-http_ssl_module --with-http_stub_status_module
echo
$?
make
echo
$?
make
install
echo
$?
ln
-s
/application/nginx1
.12.0/
/application/nginx
cd
/application/nginx
| nginx目錄結(jié)構(gòu) | |
| conf | 配置文件 |
| html | 默認(rèn)站點(diǎn) |
| logs |
日志文件 |
| sbin | 命令 |
總結(jié):
1 選擇軟件一定不能選擇最新的,否則出問(wèn)題不容易解決,因?yàn)榈谝粋€(gè)吃螃蟹。
2 一定要自己創(chuàng)建用戶,否則nginx會(huì)給默認(rèn)用戶。
3 編譯的參數(shù)根據(jù)自己的實(shí)際情況出發(fā)。
4 編譯、make、make install要養(yǎng)成echo $?的習(xí)慣防止出錯(cuò)。
5 做一個(gè)軟鏈接優(yōu)化路徑。
2、啟動(dòng)nginx
/application/nginx/sbin/nginx
-t
/application/nginx/sbin/nginx
lsof
-i :80
curl localhost
總結(jié):
- nginx的檢查語(yǔ)法操作是一樣的,只是命令名字換了
- nginx啟動(dòng)后面不需要任何參數(shù)
- 本地做個(gè)訪問(wèn)測(cè)試如果能成功則說(shuō)明網(wǎng)站已經(jīng)在工作了,在如果外網(wǎng)訪問(wèn)不進(jìn)來(lái)就是其他問(wèn)題了,比如防火墻iptables、selinux等的問(wèn)題
3、配置虛擬主機(jī)
如果熟悉了Apache的虛擬主機(jī)那么Nginx的虛擬主機(jī)也很容易理解,而且配置還比Apache簡(jiǎn)單很多。
虛擬主機(jī):
- 基于域名的虛擬主機(jī)
- 基于IP的虛擬主機(jī)
- 基于端口的虛擬主機(jī)
mkdir
/application/nginx/conf/extra
-p
##把我們的虛擬主機(jī)文件放在這個(gè)擴(kuò)展目錄中,可以在管理網(wǎng)站的時(shí)候更加方便
vim
/application/nginx/conf/nginx
.conf
##將主配置文件修改為以下內(nèi)容
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application
/octet-stream
;
sendfile on;
keepalive_timeout 65;
include extra
/blog
.conf;
include extra
/easy
.conf;
include extra
/bad
.conf;
}
vim
/application/nginx/conf/extra/blog
.conf
##將虛擬主機(jī)blog配置文件配置為以下內(nèi)容,不存在則創(chuàng)建
server {
listen 80;
server_name www.blog.linuxidc.com;
location / {
root html
/blog
;
index index.html index.htm;
}
}
vim
/application/nginx/conf/extra/easy
.conf
##將虛擬主機(jī)easy配置為以下內(nèi)容,不存在則創(chuàng)建
server {
listen 80;
server_name www.easy.linuxidc.com;
location / {
root html
/easy
;
index index.html index.htm;
}
}
vim
/application/nginx/conf/extra/bad
.conf
##將虛擬主機(jī)bad配置文件修改為以下內(nèi)容,不存在則創(chuàng)建
server {
listen 80;
server_name www.bad.linuxidc.com;
location / {
root html
/bad
;
index index.html index.htm;
}
}
cd
/application/nginx/html/
for
name
in
blog bad easy;
do
mkdir
$name;
echo
"$name.linuxidc.com"
>
$name
/index
.html;
done
##利用for循環(huán)創(chuàng)建目錄,并向index.html中寫入內(nèi)容
tree ./
bad
│ └── index.html
├── blog
│ └── index.html
├── easy
│ └── index.html
vim
/etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn
##修改本地hosts文件,為了配合我們的基于域名的虛擬主機(jī)
ping
-c 1
ping
-c 1
ping
-c 1 www.bad.linuxidc.com
/application/nginx/sbin/nginx
-s reload
##重啟nginx服務(wù)器
curl
blog.linuxidc.com
curl
bad.linuxidc.com
curl
easy.linuxidc.com
提示:使用curl訪問(wèn)域名時(shí)返回如上信息即基于域名的虛擬主機(jī)搭建成功。
擴(kuò)展:
* 域名重定向
- 為什么需要域名重定向,第一是為了防止惡意綁定,最簡(jiǎn)單的道理就是,域名是別人買的,別人想把域名指向公網(wǎng)中的任意一臺(tái)主機(jī)我們也沒(méi)有辦法。但是用了域名重定向后,可以在使用惡意域名訪問(wèn)我們的服務(wù)器后,會(huì)在地址欄重定向?yàn)槲覀冎付ǖ挠蛎?,并訪問(wèn)指定的站點(diǎn)。(理解一個(gè)原理,在一個(gè)未知域名訪問(wèn)我們的主機(jī)時(shí)其實(shí)是以IP的形式訪問(wèn),也就是說(shuō)我們重定向的其實(shí)是IP地址)
- 還有就是多域名指向同意服務(wù)器,提高訪問(wèn)量。
------------------------------------------------------------------
vim
/application/nginx/conf/extra/rewrite
.conf
##編譯rewirte.conf文件不存在則創(chuàng)建,內(nèi)容如下
server {
listen 80;
server_name www.rewrite.linuxidc.org;
rewrite ^/(.*) http:
//www
.easy.linuxidc.com/$1 permanent;
#^/表示
#
#永久有效
}
----OK------------------------------------------------------------
------------------------------------------------------------------
vim
/application/nginx/conf/nginx
.conf
##修改nginx的主配置文件,注意include的順序這個(gè)很重要否則域名重定向就沒(méi)用了
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application
/octet-stream
;
sendfile on;
keepalive_timeout 65;
include extra
/rewrite
.conf;
include extra
/blog
.conf;
include extra
/easy
.conf;
include extra
/bad
.conf;
}
----OK------------------------------------------------------------
/application/nginx/sbin/nginx
-t
/application/nginx/sbin/nginx
-s reload
vim
/etc/hosts
127.0.0.1 localhost www.blog.linuxidc.com www.easy.linuxidc.org.cn
www.rewrite.linuxidc.org
ping
-c 1
curl -L www.rewrite.linuxidc.org
curl -I www.rewrite.linuxidc.org
HTTP
/1
.1 301 Moved Permanently
Server: nginx
/1
.12.0
Date: Sun, 16 Apr 2017 14:19:58 GMT
Content-Type: text
/html
Content-Length: 185
Connection: keep-alive
Location: http:
//www
.easy.linuxidc.com/
隱藏nginx版本號(hào):
vim
/application/nginx/conf/nginx
.conf
##修改為以下內(nèi)容
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application
/octet-stream
;
sendfile on;
keepalive_timeout 65;
server{
listen 8080;
server_name www.linuxidc.win;
rewrite ^/(.*) http:
//www
.blog.linuxidc.com/$1 permanent;
}
include extra
/easy
.conf;
include extra
/bad
.conf;
include extra
/blog
.conf;
server_tokens off;
}
apache隱藏版本號(hào)的方法:
----------------------------
cat
/application/apache/conf/extra/httpd-default
.conf
.............
ServerTokens Prod
ServerSignature Off
.............
-----------------------
nginx日志管理
-
使用mv工具和crontab工具
具體方法如下:
----------------------------------------------------------------------------
vim nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application
/octet-stream
;
sendfile on;
keepalive_timeout 65;
log_format main
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
;
include extra
/rewrite
.conf;
include extra
/bad
.conf;
include extra
/blog
.conf;
include extra
/easy
.conf;
server_tokens off;
}
vim extra
/blog
.conf
server {
listen 80;
server_name www.blog.linuxidc.com;
access_log logs
/blog
.access.log main;
location / {
root html
/blog
;
index index.html index.htm;
}
}
##其他的配置文件也一樣在server標(biāo)簽里添加日志信息
----OK------------------------------------------------------------
#sed -i '/server_name www.bad.linuxidc.com;/a\\taccess_log logs\/bad.access.log
main; ' extra
/bad
.conf
..
/sbin/nginx
-t
..
/sbin/nginx
-s reload
ll ..
/logs/
total 220
-rw-r--r-- 1 root root 110155 Apr 17 15:42 access.log
-rw-r--r-- 1 root root 0 Apr 17 15:42 bad.access.log
-rw-r--r-- 1 root root 0 Apr 17 15:42 blog.access.log
-rw-r--r-- 1 root root 0 Apr 17 15:42 easy.access.log
-rw-r--r-- 1 root root 98802 Apr 17 15:43 error.log
-rw-r--r-- 1 root root 6 Apr 16 22:29 nginx.pid
-rw-r--r-- 1 root root 0 Apr 17 15:42 rewrite.access.log
##可見(jiàn)日志文件已經(jīng)生成
---------------------------------------------------------------------------------
vim
/application/nginx/logs/backlog
.sh
##寫一個(gè)自動(dòng)備份的腳本
#!/bin/sh
for
name
in
rewrite bad blog easy;
do
/bin/mv
/application/nginx/logs/
${name}.access.log
/applog/nginx/access/
$(
date
+%F)_${name}.log
if
[ $? -
eq
0 ]
then
echo
"$(date +%F) ${name}"
>>
/applog/nginx/access/successfully
.txt
else
echo
"$(date +%F) ${name}"
>>
/applog/nginx/access/error
.txt
fi
done
/bin/find
/applog/nginx/access/
-mtime +7 -
exec
rm
-rf {} \;
---腳本完成------OK------------------------------------------------------------
chmod
+x
/application/nginx/logs/backlog
.sh
crontab
-e
30 1 * * *
/application/nginx/logs/backlog
.sh
##晚上訪問(wèn)量少,適合做備份等工作
mkdir
-p
/applog/nginx/access/ 總結(jié):
- 基于域名的虛擬主機(jī)普遍常用到,基于IP和端口的一般在公司內(nèi)部使用
- 在修改配置文件之前一定要做好備份,一邊修改和對(duì)比
- 創(chuàng)建擴(kuò)張目錄,存放虛擬主機(jī)的配置,因?yàn)樵谄髽I(yè)里由于需要配合大量的業(yè)務(wù),所以配置內(nèi)容也會(huì)隨之增加,如果全部都是在nginx.conf里的話會(huì)使得整個(gè)文件非常的臃腫。
- apache的重啟:./bin/apachectl restart
- nginx的配置文件每句結(jié)尾一定要加上;(分號(hào))
- windows修改hosts的路徑:win+R--> system32--> drivers --> etc-->hosts。如果記事本不能修改,請(qǐng)先以管理員運(yùn)行記事本,在把hosts文件拖入。推薦使用Notepad++。
- Apache服務(wù)器在站點(diǎn)目錄下沒(méi)有index.html時(shí),可以訪問(wèn)并查看整個(gè)網(wǎng)站的目錄結(jié)構(gòu),可以通過(guò)修改httpd.conf中的“Options Indexes FollowSymLinks”---> "Options -Indexes FollowSymLinks"。nginx安全新則相對(duì)高點(diǎn),如果沒(méi)有index.html文件直接報(bào)錯(cuò)一般是403.
- Apache服務(wù)器的默認(rèn)站點(diǎn)目錄是DocumentRoot。Nginx是root html。
- 服務(wù)器一定要隱藏版本號(hào),否則容易被攻擊。
++++++++++++++++++++++nginx服務(wù)安裝完成++++++++++++++++++++++++
Mysql
4、安裝二進(jìn)制mysql
mysql分類:
社區(qū)版
商業(yè)版
集群
wget http:
//dev
.mysql.com
/get/Downloads/MySQL-5
.5
/mysql-5
.5.32-linux2.6-x86_64.
tar
.gz
tar
zxvf mysql-5.5.32-linux2.6-x86_64.
tar
.gz
cp
-avr mysql-5.5.32-linux2.6-x86_64/
/application/
cd
/application/
mv
mysql-5.5.32-linux2.6-x86_64/ mysql-5.5.32/
ln
-s mysql-5.5.32/ mysql
useradd
-M -s
/sbin/nologin
mysql
cd
mysql
mkdir
/application/mysql/data
-p
chown
-R mysql:mysql
/application/mysql-5
.5.32/
-----------------------------------------------------------------
.
/scripts/mysql_install_db
--basedir=
/application/mysql/
--datadir=
/application/mysql/data/
--user=mysql
##初始化數(shù)據(jù)庫(kù)
mysql_install_db根據(jù)版本的不同可能存放的路徑也不一樣
--basedir是mysql的安裝路縉
--datadir是數(shù)據(jù)文件存放路徑
--user是用戶名
成功的標(biāo)準(zhǔn)是
echo
$?沒(méi)有錯(cuò)誤+兩個(gè)OK沒(méi)有error
To start mysqld at boot
time
you have to copy
support-files
/mysql
.server to the right place
for
your system
##想要開(kāi)機(jī)自動(dòng)啟動(dòng),就把mysql.server放到正確的位置即/etc/init.d/mysqld
/application/mysql//bin/mysqladmin
-u root password
'new-password'
/application/mysql//bin/mysqladmin
-u root -h linuxidc password
'new-password'
Alternatively you can run:
/application/mysql//bin/mysql_secure_installation
##設(shè)置密碼的方法
You can start the MySQL daemon with:
cd
/application/mysql/
;
/application/mysql//bin/mysqld_safe
&
##運(yùn)行數(shù)據(jù)庫(kù)
You can
test
the MySQL daemon with mysql-
test
-run.pl
cd
/application/mysql//mysql-test
; perl mysql-
test
-run.pl
##測(cè)試數(shù)據(jù)庫(kù)
提示:
/etc/init
.d
/mysqld
實(shí)質(zhì)是復(fù)制了mysql.server文件,所以一定不要和
cd
/application/mysql/
;
/application/mysql//bin/mysqld_safe
&方法一起用否則會(huì)出錯(cuò)
---------------------------------------------------------------
\
cp
support-files
/my-medium
.cnf
/etc/my
.cnf
\
cp
support-files
/mysql
.server
/etc/init
.d
/mysqld
--------------------------------------
vim
/etc/init
.d
/mysqld
..................
basedir=
/application/mysql/
datadir=
/application/mysql/data
...................
或者
#sed -i'46s/\(basedir=\)/\1\/application\/mysql/p' /etc/init.d/mysqld
##修改46行為basedir=/application/mysql,只限定當(dāng)前環(huán)境,其他環(huán)境可能有變化
#sed -i'47s/\(datadir=\)/\1\/application\/mysql\/data/p' /etc/init.d/mysqld
##修改datadir為/application/mysq/data
----OK---------------------------------
chmod
+x
/etc/init
.d
/mysqld
/etc/init
.d
/mysqld
start
echo
"export PATH=/application/mysql/bin:$PATH"
>>
/etc/profile
source
/etc/profile
----------------------------------------------------
mysql_secure_installation
##以下內(nèi)容看自己的需求
mysql -uroot -p
mysql>show databases;
mysql> use mysql
mysql> show tables;
mysql>
select
User,Host from user;
mysql>DELETE FROM user WHERE User=
'root'
and Host=
'::1'
;
## 目前是不會(huì)用的到的所以刪除,如果有需求就不用刪除
mysql> quit
--OK-------------------------------------------------- 總結(jié):
a) 針對(duì)自己的硬件平臺(tái)選用合適的編譯器來(lái)優(yōu)化編譯后的二進(jìn)制代碼;
b) 根據(jù)不同的軟件平臺(tái)環(huán)境調(diào)整相關(guān)的編譯參數(shù);
c) 針對(duì)我們特定應(yīng)用場(chǎng)景選擇需要什么組件不需要什么組件;
d) 根據(jù)我們的所需要存儲(chǔ)的數(shù)據(jù)內(nèi)容選擇只安裝我們需要的字符集;
e) 同一臺(tái)主機(jī)上面可以安裝多個(gè)MySQL;
f) 等等其他一些可以根據(jù)特定應(yīng)用場(chǎng)景所作的各種調(diào)整。
在源碼安裝給我們帶來(lái)更大靈活性的同時(shí),同樣也給我們帶來(lái)了可能引入的隱患:
a) 對(duì)編譯參數(shù)的不夠了解造成編譯參數(shù)使用不當(dāng)可能使編譯出來(lái)的二進(jìn)制代碼不夠穩(wěn)定;
b) 對(duì)自己的應(yīng)用環(huán)境把握失誤而使用的優(yōu)化參數(shù)可能反而使系統(tǒng)性能更差;
c) 還有一個(gè)并不能稱之為隱患的小問(wèn)題就是源碼編譯安裝將使安裝部署過(guò)程更為復(fù)雜,所花費(fèi)的
時(shí)間更長(zhǎng);
PHP
需要下載以下的依賴包,并且編譯:
libiconv(libiconv-1.14.tar.gz)
libmcrypt-2.5.8.tar.gz,加密庫(kù)
mcrypt-2.6.8.tar.gz
mhash-0.9.9.9.tar.gz
網(wǎng)頁(yè)標(biāo)題:CentOS6.8安裝LNMP環(huán)境(Linux+Nginx+MySQL+PHP)
轉(zhuǎn)載來(lái)源:http://www.5511xx.com/article/dheiopp.html


咨詢
建站咨詢
