nginx安装及配置

Nginx安装

Nginx优点:

在性能上nginx占用更少的系统资源,在特定的场景应用中(静态数据)能支持更多的并发连接,达到更改的访问效率。在功能上,nginx是一个优秀的代理服务器和负载均衡服务器,还可以作为缓存服务器。最主要的优点是支持kqueue,epoll等网络IO事件模型,由此来支持高并发。

作为web服务器:nginx能支持更多的并发连接(针对静态数据),而且占用的资源很少,效率更高。作为负载均衡服务器:nginx可以作为代理服务器,类似专业的haproxy软件功能。nginx同时也是一款优秀的邮件代理服务器。 nginx还可以作为缓存服务器使用。nginx安装非常简单,配置文件简介,配置灵活

Nignx的工作模式为一个master主进程+N个worker进程

安装Pcre库

官方网站 http://www.pcre.org 安装prce是为了使Nginx支持http rewrite模块。


[root@lnmp ~]#mkdir /tools
 [root@lnmp~]#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
 [root@lnmp ~]#tar zxvf pcre-8.30.tar.gz
[root@lnmp ~]# cd pcre-8.30
[root@lnmp ~]#./configure
[root@lnmp ~]# make && make install


安装nginx

官方网站:http://nginx.org/en/download.html

下载站点:http://nginx.org/download/nginx-1.2.9.tar.gz


[root@lnmp ~]# useradd nginx -s /sbin/nologin -M
  [root@lnmp ~]#tar zxvf nginx-1.2.9.tar.gz
  [root@lnmp ~]#cd /nginx-1.2.9
  [root@lnmp ~]#./configure --prefix=/application/nginx-1.2.9 --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
  [root@lnmp ~]#make && make install
  [root@lnmp ~]#ln -s /application/nginx-1.2.9/ /application/nginx


--with-http_stub_status_module #激活状态模块

--with-http_ssl_module #激活ssl功能


[root@lnmp ~]#/application/nginx/sbin/nginx -t    #检查语法
 /application/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

报错信息,提示缺少libpcre.so.l库。

解决方法

[root@lamp ~]#find / -name "libpcre.so.1"

/usr/local/lib/libpcre.so.1

[root@lamp ~]#vi /etc/ld.so.conf

将下面库的路径

/usr/local/lib 放到文件最后,保存退出

执行ldconfig命令,是上面的更改生效

[root@lnmp ~]#/application/nginx/sbin/nginx -t   #再检查语法
[root@lnmp ~]#/application/nginx/sbin/nginx  #启动nginx

检查是否启动成功

[root@lnmp ~]# ps -ef | grep nginx
root     10858     1  0 Aug22 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx
nginx    10859 10858  0 Aug22 ?        00:00:00 nginx: worker process      
root     28189 27736  0 02:10 pts/1    00:00:00 grep nginx
[root@lnmp ~]# netstat -lnt | grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN    
[root@lnmp ~]# lsof -i :80
COMMAND   PID  USER   FD   TYPE DEVICE SIZE NODE NAME
nginx   10858  root    6u  IPv4  32556       TCP *:http (LISTEN)
nginx   10859 nginx    6u  IPv4  32556       TCP *:http (LISTEN)

浏览器,输入服务器地址,检查是否成功


如果启动的时候出现错误:nginx: [emerg] gerpwnam("nginx") failed

表示没有创建用户

[root@lnmp ~]#pkill nginx 杀掉进程

[root@lnmp ~]#/application/nginx/sbin/nginx 重新启动nginx

nginx错误日志地址:/application/nginx/logs/error.log


Nginx配置说明

|-- conf #nginx的所有配置文件目录

| |-- fastcgi.conf #fastcgi的配置文件

| |-- fastcgi.conf.default

| |-- fastcgi_params #fastcgi的参数文件

| |-- fastcgi_params.default

| |-- koi-utf

| |-- koi-win

| |-- mime.types

| |-- mime.types.default

| |-- nginx.conf #nginx的主配置文件

| |-- nginx.conf.default

| |-- scgi_params

| |-- scgi_params.default

| |-- uwsgi_params

| |-- uwsgi_params.default

| `-- win-utf


|-- html #这是编译安装时nginx的默认站点目录

| |-- 50x.html #错误页面优雅代替显示文件,例如:出现502错误会调用此页面

| |-- index.html#默认的首页文件。首页文件时在nginx.conf中事先定义好的。具体参数为

indexindex.html index.htm,注意与apache参数的不同

DirectoyIndexindex.html

|-- logs #这是nginx默认的日志路径,报错错误日志及访问日志

| |-- access.log#nginx的默认访问日志文件

| |-- error.log#nginx的默认错误日志文件

| `-- nginx.pid#nginx的pid文件,nginx进程启动后,会把所有进程的ID号写到此文件


|-- sbin #nginx的命令目录

| `-- nginx#nginx的启动命令



Nginx的主配置文件nginx.conf

user nginx nginx; #指定用户和组

worker_processes 1; #启动nginx开启多少个进程

events { #事件

use epoll;

worker_connections 1024;

}

http { #http的标签

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

server { #server 标签,即虚拟主机的配置 相当于apache的vhost配置,都要放在http{}中

listen 80;

server_name bbs.pengzai.cn pengzai.cn; #网站名称 别名

location / {

root /www;

index index.html index.htm;

}

#error_page 500 502 503 504 /50x.html;

#location = /50x.html {

# root html;

}

}

}


创建站点目录

[root@lnmp ~]#mkdir -p /www/{bbs,blog}

给站点目录授权

[root@lnmp ~]#chown -R nginx.nginx /www/

创建日志路径

[root@lnmp ~]#mkdir -p /app/logs

建立index主文件

[root@lnmp ~#]echo "I am addam" >/www/blog/index.html

然后检查语法:

[root@lnmp ~]# /application/nginx/sbin/nginx -t
nginx: the configuration file /application/nginx-1.2.9/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.2.9/conf/nginx.conf test is successful

然后平滑重启nginx:

[root@lnmp ~]# /application/nginx/sbin/nginx -s reload

检查启动结果:

[root@lnmp ~]# lsof -i :80
COMMAND   PID  USER   FD   TYPE DEVICE SIZE NODE NAME
nginx   10858  root    6u  IPv4  32556       TCP *:http (LISTEN)
nginx   28394 nginx    6u  IPv4  32556       TCP *:http (LISTEN)
nginx   28395 nginx    6u  IPv4  32556       TCP *:http (LISTEN)
nginx   28396 nginx    6u  IPv4  32556       TCP *:http (LISTEN)
[root@lnmp ~]# netstat -lnt|grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN


Nginx虚拟主机配置

vi [root@lnmp ~]#


user nginx nginx; #指定用户和组

worker_processes 2; #启动nginx开启多少个进程


error_log /app/logs/nginx_error.log crit; #crit严重日志级别,错误日志地址


events {

use epoll;

worker_connections 1024;

}


http {

include mime.types;

default_type application/octet-stream;


log_format commonlog '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';


sendfile on;


keepalive_timeout 65;


server {

listen 80;

server_name www.pengzai.cn pengpeng.cn; #网站名称 别名


location / {

root /www/blog; #站点目录

index index.html index.htm;

access_log /app/logs/pengzai_access.log commonlog;

}

}

server {

listen 80;

server_name www.addam.com;

location / {

root /www/bbs/;

index index.html index.htm;

access_log /app/logs/addam_access.log commonlog;

}

}




本文出自 “风之别鹤” 博客,谢绝转载!

你可能感兴趣的:(nginx,nginx安装,Nginx虚拟主机)