版权声明:本文为博主原创文章,未经博主允许不得转载。

Nginx的安装、配置及使用总结:

Nginx是一个高性能的HTTP及反向代理服务器,也是IMAP/POP3/SMTP代理服务器。在高并发情况下,Nginx突出了它的高性能和稳定性,对比同类服务器技术而言,它是很多国内大中型网站首选的服务器环境。和往常一样,在总结一门新技术时都会先从它的环境配置及使用开始的,下面就以Nginx的安装、配置及简单的使用为导向进行总结说明。

l   Nginx安装

l   Nginx配置

l   php-fpm配置

l   Nginx使用

l   问题及解决

一、Nginx安装

1、从官网(http://www.nginx.org)下载最新的Nginx并解压,进入解压目录进行相关安装操作即可,具体如下:

$ tar –xvf  nginx-1.8.1.tar

$ cd  nginx-1.8.1

$ sudo  ./configure

$ sudo  make

$sudo  make install

2、安装之后,使用nginx –v验证下是否安装完成:

$ nginx -V

3、开启nginx服务,并打开浏览器地址:127.0.0.1

$ sudo  ./nginx  // 开启服务

上图说明,Nginx环境已经安装并运行正常,接下来需要对nginx.conf进行几项重要的配置了。

二、Nginx配置

一般情况下,我们只需要对conf下的nginx.conf进行基本配置即可,但有时我们也需要特殊的配置,这个在下面会介绍到,我们修改默认的nginx.conf(最后备份下方便回滚)配置如下,注释部分即为修改内容(实际使用时,去掉注释):

1、修改的nginx.conf配置文件

#user  nobody;

worker_processes  auto; #根据设备cpu的个数 自动选择

#error_log  /nginx/nginx-1.8.1/logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

worker_connections  1024; #允许请求的连接数

}

http {

include       mime.types;

default_type  application/octet-stream;

#log_format main  '$remote_addr - $remote_user[$time_local] "$request" '

#                  '$status $body_bytes_sent"$http_referer" '

#                  '"$http_user_agent""$http_x_forwarded_for"';

#access_log logs/access.log  main;

sendfile        on; #允许发送文件

#tcp_nopush     on;

#keepalive_timeout  0;

keepalive_timeout  65; #会话超时时间

#gzip on;

server {

listen       80; #监听的端口

server_name  localhost; #服务端域名或ip

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / { #Web服务的根目录

root        /project/cwteam/cwteam/cwteam;

index  index.html index.htm index.php;# 加入了html和php

#如果文件不存在则尝试TP解析

try_files  $uri /index.php$uri;

}

error_page  404              /404.html;

# redirect server error pages to thestatic page /50x.html

#

error_page   500 502 503 504  /50x.html; #可自定义错误页面

location = /50x.html {

root   html;

}

# proxy the PHP scripts to Apachelistening on 127.0.0.1:80

#

#location ~ \.php$ {

#   proxy_pass   http://127.0.0.1;

#}

# pass the PHP scripts to FastCGIserver listening on 127.0.0.1:9000

#

#location ~ \.php$ {

#   root          /project/cwteam/cwteam/cwteam;

#   fastcgi_pass   127.0.0.1:9000;

#   fastcgi_index  index.php;

#   fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

#   include        fastcgi_params;

#}

location ~ \.php {  #默认nginx不支持php拓展 这里把它添加上

root        /project/cwteam/cwteam/cwteam;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_intercept_errors on;

#设置PATH_INFO,注意fastcgi_split_path_info已经自动改写了fastcgi_script_name变量,

#后面不需要再改写SCRIPT_FILENAME,SCRIPT_NAME环境变量,所以必须在加载fastcgi.conf之前设置

fastcgi_split_path_info  ^(.+\.php)(/.*)$;

fastcgi_param  PATH_INFO $fastcgi_path_info;

#加载Nginx默认"服务器环境变量"配置

include        fastcgi.conf;

}

# deny access to .htaccess files, ifApache's document root

# concurs with nginx's one

#

#location ~ /\.ht {

#   deny  all;

#}

}

# another virtual host using mix of IP-,name-, and port-based configuration

#

#server {

#    listen       8000;

#   listen       somename:8080;

#   server_name  somename  alias another.alias;

#   location / {

#       root   html;

#       index  index.html index.htm;

#   }

#}

# HTTPS server

#

#server {

#   listen       443 ssl;

#   server_name  localhost;

#   ssl_certificate      cert.pem;

#   ssl_certificate_key  cert.key;

#   ssl_session_cache   shared:SSL:1m;

#   ssl_session_timeout  5m;

#   ssl_ciphers  HIGH:!aNULL:!MD5;

#   ssl_prefer_server_ciphers  on;

#   location / {

#       root   html;

#       index  index.html index.htm;

#   }

#}

}

注:

默认Nginx不支持对php的拓展,所以需要添加对其的拓展支持,具体查看上岸注释内容说明。

2、测试下配置是否正常

$ sudo ./nginx  -t

三、php-fpm配置

参考:

http://blog.csdn.net/why_2012_gogo/article/details/51112477

四、Nginx使用

正如上面的Nginx.conf配置,Web的服务根路径已经修改为自定义项目了,所以可以直接输入访问即可,而我的项目采用了ThinkPHP开源框架,步骤如下:

1、添加html页面

<!DOCTYPEhtml>

<html>

<head>

<metacharset="UTF-8">

</head>

<bodystyle="background-color:#9999;">

<div>Hello Nginx!</div>

</body>

</html>

2、添加控制器

public function index() {

$this->display();

}

这个控制器只是展示上面的页面哦!

3、浏览器的结果

五、问题及解决

在上面的整个过程中,遇到了些许问题,具体可参看如下:

1、nginx:[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No suchfile or directory)

上面的报错,是在使用nginx–s reload时发生的(前提是先nginx –s stop之后),原因是reload是检查正在运行的nginx服务,stop之后不能重新加载,只要nginx再次开启,就可以使用reload了,所以这个问题不会影响我们使用nginx,如果就是要解决的话,可以这样:

$ nginx –c /usr/local/nginx/conf/nginx.conf (关联位置)

注:

使用nginx -c的参数指定nginx.conf文件的位置。

2、[error] 3846#0: *3 kevent()reported that connect() failed (61: Connection refused) while connecting toupstream, client: 127.0.0.1, server: localhost, request: "GET /index.phpHTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host:"localhost"

报错问题:因为php-fpm进程服务未启动,所以需要开启之外,还需要对php-fpm.conf中的error_log 和pid进行配置,否则会导致php-fpm因为找不到位置而启动不了。

解决方法:

首先,添加php-fpm配置文件:

$ sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf (复制一份默认配置文件并修改)

其次,修改php-fpm.conf配置文件:

去掉前面的注释,将php-fpm.conf中的error_log修改为/var/log/php-fpm.log,而pid修改为/var/run/php-fpm.pid即可。

最后,启动php-fpm:

$ sudo php-fpm (启动)

注:

当启动时,报服务已经在使用,不能进行绑定,那么请使用kill -9 pid强制杀掉重新启动即可。

3、SQLSTATE[HY000][2002] No such file or directory

上面的报错,是本人在刚搭建好的Nginx环境中试运行PHP访问数据时出现错误了,原因是因为Nginx的数据库连接未打开,即使Mysql服务运行正常,Nginx服务也找不到数据库,解决的办法:

$ sudo find / -namemysql.sock(数据库连接文件)

注:已经发现了mysql.sock文件,从目录可看出这个.sock文件是之前系统中

xampp继承环境所持有的数据库Mysql连接文件,所以简单了,只需要将该文件映射关联到/var/mysql下即可。

$ ls /var/mysql (检查是否存在,若不存在就创建)

$ sudo mkdir/var/mysql (创建完成之后,使用ln关联)

$ sudo ln –s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock    /var/mysql/mysql.sock(关联之后 刷新页面即可)

好了,到这里,我们已经介绍了Nginx的安装、基本配置及简单的验证使用了,马上开始Nginx的高效之旅吧!

转载于:https://www.cnblogs.com/quanzhiguo/p/7520620.html

Nginx安装、配置及使用总结相关推荐

  1. codeigniter在nginx安装配置及URL重写

    目录 [hide] 1 codeigniter修改 2 修改nginx配置 3 访问url codeigniter(CI)是一个轻量型的PHP优秀框架,但是它是在apache服务器下开发的,在ngin ...

  2. puppet 3+Unicorn+Nginx安装配置

    puppet 3+Unicorn+Nginx安装配置 2014-08-15 10:58 酒瓶不倒 酒瓶不倒的博客 字号:T | T 一键收藏,随时查看,分享好友! Unicorn 效率要比 Webri ...

  3. Linux搭建waf防火墙,Linux入门教程:nginx安装配置naxsi waf防火墙,nginxwaf Naxsi 不依赖...

    Linux入门教程:nginx安装配置naxsi waf防火墙,nginxwaf Naxsi 不依赖 Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开源 WAF ,但是它 ...

  4. 教程 | 用安卓手机搭建 web 服务器(二)—— Nginx 安装配置

    上一步完成了必要的软件安装,接下来需要在 Linux 系统上安装 nginx. Nginx("engine x")是一款是由俄罗斯的程序设计师 Igor Sysoev 所开发高性能 ...

  5. 虚拟机的Nginx安装配置

    Nginx 安装配置 一.安装编译工具及库文件 下载 PCRE 安装包. 进入到需要安装文件的位置. [root@bogon src]# cd /usr/local/src/ 执行命令. [root@ ...

  6. nginx安装配置(图文教程)

    nginx安装配置(图文教程) nginx介绍 nginx是一款使用C语言编写的高性能的HTTP和反向代理服务器.优点是占用内存小,并发能力强. nginx下载.安装 输入以下代码下载安装包 wget ...

  7. FastDFS+Nginx安装配置

    FastDFS+Nginx安装配置 1.系统环境 最小化安装的RedHat 6.4 fastdfs版本:FastDFS_v3.06.tar.gz nginx版本:nginx-1.0.11.tar.gz ...

  8. nginx 安装配置+清缓存模块安装

    nginx 安装配置+清缓存模块安装 下载软件包 编译安装 内核参数优化 配置范例站点站点 修改nginx配置文件 Nginx 启动关闭 测试 经过一段时间的使用,发现 nginx 在并发与负载能力方 ...

  9. Nginx安装配置OpenSSL

    这里写自定义目录标题 Nginx安装配置OpenSSL Nginx安装配置OpenSSL 1.安装 yum install openssl openssl-devel -y 2.切换到源包 bash ...

  10. Nginx安装配置Lua支持

    Nginx安装配置Lua支持 1. 环境准备 2. 下载最新的`luajit`和`ngx_devel_kit`以及`lua-nginx-module`解压 3. 解压`ngx_devel_kit`以及 ...

最新文章

  1. 为什么parsefloat加出来还是字符串_为什么水质检测达标家里的自来水管流出来的水却还是脏的?...
  2. PHP的.htaccess
  3. python图标icon_用Python提取exe图标icon
  4. 机器学习:用正规方程法求解线性回归
  5. SQL Server (MSSQLSERVER) 启动又停止
  6. 破解visio2013记录
  7. 比亚迪宋Pro电路图和维修手册
  8. P1322 logo语言
  9. iOS数据持久化设计
  10. 电脑管家修复DNS服务器,DNS是什么?dns劫持是怎么回事?怎么处理?
  11. android视频播放异常,Android 播放视频常见问题小结
  12. linux下终端解压rar,Linux下解压.rar文件
  13. AIX服务器上设置IIB连接oracle
  14. <router-link>
  15. WiFi辐射比手机电脑辐射数值小 60厘米外基本为0
  16. 遭遇“windows已经阻止此软件因为无法验证发行者”
  17. [闲言]小城故事之小城之晨
  18. AudioEffect与Equalizer解析(Java侧)
  19. 怎么实现黑白负片爆闪效果,有Vegas就足够啦
  20. 平板电脑能安装java_手机上能安装的应用,平板电脑上是不是都能安装

热门文章

  1. intel 核显linux驱动程序,10nm来也!Intel 11代核显Linux驱动功能冻结
  2. 虚拟主机升级服务器,云虚拟主机升级云服务器
  3. oracle删除导入的文件,oracle创建表空间,导入出文件,删除
  4. 在网络推广外包中企业网站排名优化在网络推广外包中如何实现?
  5. 网站优化之如何更快速的提升权重?
  6. java1 lt lt 16,“lt;lt;” Java运算符
  7. 很高兴加入 英文_少和外国人说quot;You look youngquot;,她们可能会不高兴!
  8. 中南大学计算机辅助工艺设计,中南大学计算机辅助制造大作业.doc
  9. 华为DUA-AL00真机android studio识别不出
  10. 开源软件架构总结之——Asterisk(DSL、组件、多线程)