linux搭建nginx WEB服务器的教程

   下文来为各位介绍一篇在linux搭建nginx WEB服务器的教程,如果各位不想使用apache环境了,想用nginx环境就可以和小编一起来看看。

  1、下载nginx

  命令:wget http://nginx.org/download/nginx-0.8.54.tar.gz

  2、解压

  命令:tar zxvf nginx-0.8.54.tar.gz

  3、进入目录

  命令:cd nginx-0.8.54

  4、安装依赖包

  命令:yum -y install gcc pcre-devel openssl openssl-devel (没有网络可在centos中找相关rpm)

  5、执行 ./configure

  命令:./configure

  6、继续安装

  命令:

  make

  和

  make install

  7、启动nginx服务

  命令:/usr/local/nginx/sbin/nginx

  8、重启nginx服务

  命令:/usr/local/nginx/sbin/nginx -s reload

  9、修改站点的配置文件

  命令:vi /usr/local/nginx/conf/nginx.conf

  10、多站点设置

  ⑴、在 /usr/local/nginx/conf/ 下创建 vhost 目录

  命令:mkdir /usr/local/nginx/conf/vhost

  ⑵、在 /usr/local/nginx/conf/vhost 里创建一个名字为 linlik.conf 的文件,把站点配置文件写入(请查看最下面的站点内容)

  命令:vi /usr/local/nginx/conf/vhost/linlik.conf

  ⑶、打开 /usr/local/nginx/conf/nginx.conf 文件,在相应位置加入 include 把以上2个文件包含进来

  在页尾后括号上面加入一句:include vhost/*.conf; 然后保存退出并重启nginx服务

  11、多站点的站点配置文档内容

  如下:

  server

  {

  listen 80;

  #listen [::]:80;

  server_name jiahaolin.com www.111cn.net;

  index index.html index.htm index.php default.html default.htm default.php;

  root /www/jiahaolin;

  include emlog.conf;

  #error_page 404 /404.html;

  location ~ [^/].php(/|$)

  {

  # comment try_files $uri =404; to enable pathinfo

  try_files $uri =404;

  fastcgi_pass unix:/tmp/php-cgi.sock;

  fastcgi_index index.php;

  include fastcgi.conf;

  #include pathinfo.conf;

  }

  location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$

  {

  expires 30d;

  }

  location ~ .*.(js|css)?$

  {

  expires 12h;

  }

  access_log /home/wwwlogs/jiahaolin.com.log access;

  }

  NGINX下如何自定义404页面

  IIS和APACHE下自定义404页面的经验介绍文章已经非常多了,NGINX的目前还比较少,为了解决自家的问题特地对此作了深入的研究。研究结果表明,NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步:

  1.创建自己的404.html页面

  2.更改nginx.conf在http定义区域加入: fastcgi_intercept_errors on;

  3.更改nginx.conf(或单独网站配置文件,例如在nginx -> sites-enabled下的站点配置文件 )

  中在server 区域加入: error_page 404 /404.html 或者 error_page 404 =http://www.xxx.com/404.html

  4.更改后重启nginx,,测试nginx.conf正确性: /opt/nginx/sbin/nginx –t

  #502 等错误可以用同样的方法来配置。

  error_page 500 502 503 504 /50x.html;

  注意事项:

  1.必须要添加:fastcgi_intercept_errors on; 如果这个选项没有设置,即使创建了404.html和配置了error_page也没有效果。fastcgi_intercept_errors 语法: fastcgi_intercept_errors on|off 默认: fastcgi_intercept_errors off 添加位置: http, server, location 默认情况下,nginx不支持自定义404错误页面,只有这个指令被设置为on,nginx才支持将404错误重定向。这里需要注意的是,并不是说设置了fastcgi_intercept_errors on,nginx就会将404错误重定向。在nginx中404错误重定向生效的前提是设置了fastcgi_intercept_errors on,并且正确的设置了error_page这个选项(包括语法和对应的404页面)

  2.不要出于省事或者提高首页权重的目的将首页指定为404错误页面,也不要用其它方法跳转到首页。

  3.自定义的404页面必须大于512字节,否则可能会出现IE默认的404页面。例如,假设自定义了404.html,大小只有11个字节(内容为:404错误)。

  Nginx 配置安装以及一些常遇到的错误

  nginx 编译安装 一、安装nginx时必须先安装相应的编译工具

  yum -y install gcc gcc-c++ autoconf automake

  yum -y install zlib zlib-devel openssl openssl-devel pcre-devel

  建立nginx 组

  groupadd -r nginx

  useradd -s /sbin/nologin -g nginx -r nginx

  id nginx

  zlib:nginx提供gzip模块,需要zlib库支持

  openssl:nginx提供ssl功能

  pcre:支持地址重写rewrite功能

  Nginx 官网下载地址: http://nginx.org/ 最新版 http://nginx.org/download/nginx-1.5.2.tar.gz

  二、tar -zxvf nginx-1.2.8.tar.gz

  三、cd nginx-1.2.8

  配置

  四、./configure

  --prefix=/usr

  --sbin-path=/usr/sbin/nginx

  --conf-path=/etc/nginx/nginx.conf

  --error-log-path=/var/log/nginx/error.log

  --pid-path=/var/run/nginx/nginx.pid

  --user=nginx

  --group=nginx

  --with-http_ssl_module

  --with-http_flv_module

  --with-http_gzip_static_module

  --http-log-path=/var/log/nginx/access.log

  --http-client-body-temp-path=/var/tmp/nginx/client

  --http-proxy-temp-path=/var/tmp/nginx/proxy

  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi

  --with-http_stub_status_module

  或者使用默认的 直接 ./configure

  编译并且安装

  五、make && make install

  编译完成后 make install 进行安装 安转后就大功告成拉

  小结:centos没有安装make编译器

  解决:yum -y install gcc automake autoconf libtool make

  重启动命令 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 更多参考 nginx --help

  nginx 的配置以及常见小问题 如下:

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 错误解决

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

  nginx: [emerg] still could not bind()

  问题描述:地址已被使用。可能nginx服务卡死了,导致端口占用,出现此错误。

  解决方法:首先用lsof:80看下80端口被什么程序占用。lsof返回结果如下:

  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

  nginx 3274 root 6u IPv4 10664 0t0 TCP *:http (LISTEN)

  nginx 3547 nginx 6u IPv4 10664 0t0 TCP *:http (LISTEN)

  发现是nginx程序,所以我们把nginx服务k掉,重新启动服务。。命令如下:

  kill -9 3274

  kill -9 3547

  或者 killall -9 nginx

  从新载入配置文件启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

  启动成功了但是发现一个错误信息

  [warn]: 51200 worker_connections are more than open file resource limit: 51200

  虽然不是致命的问题 不影响nginx运行 但是看起来很烦人 我们来解决一下

  nginx.conf 配置问题

  events {

  use epoll;

  worker_connections 51200; // 这里出的问题

  }

  问题原因是 Linux的最大文件数限制。修改Linux 文件数限制 ulimit -n 51200

  [root@localhost ~]# ulimit -n

  [root@localhost ~]#

  接下来从新载入配置文件重启动Ok了....

  nginx error_log 错误日志配置说明

  nginx的error_log类型如下(从左到右:debug最详细 crit最少):

  [ debug | info | notice | warn | error | crit ]

  例如:error_log logs/nginx_error.log crit;

  解释:日志文件存储在nginx安装目录下的 logs/nginx_error.log ,错误类型为 crit ,也就是记录最少错误信息;

  注意error_log off并不能关闭日志记录功能,它将日志文件写入一个文件名为off的文件中,如果你想关闭错误日志记录功能,应使用以下配置:

  error_log /dev/null crit;

  把存储位置设置到Linux的黑洞中去

  同样注意0.7.53版本,nginx在读取配置文件指定的错误日志路径前将使用编译的默认日志位置,如果运行nginx的用户对该位置没有写入权限,nginx将输出如下错误:

  [alert]: could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) log_not_found 语法:log_not_found on | off

  默认值:on

  使用字段:location

  这个参数指定了是否记录客户端的请求出现404错误的日志,通常用于不存在的robots.txt和favicon.ico文件,例如: location = /robots.txt { log_not_found off; }

  最后:所有nginx配置发生改变时,最好都使用如下命令测试配置是否错误后再使用 -s reload 重载

  # /usr/local/nginx/sbin/nginx –t

  说明:

  1、# 代表root权限,不用输入

  2、以上是nginx的默认安装路径,如果改变了要相应的修改哦,例如 wdcp 的 lanmp 一键安装包 则如需要用如下命令

  # /www/wdlinux/nginx/sbin/nginx -s reload

  输入后如果提示如下,则表示配置无误:

  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  这时再使用重载命令让Nginx平滑的重新加载配置即可,而不会影响正常访问:

  # /usr/local/nginx/sbin/nginx -s reload

时间: 2024-10-22 22:16:52

linux搭建nginx WEB服务器的教程的相关文章

利用Go语言初步搭建一个web应用的教程

  这篇文章主要介绍了利用Go语言初步搭建一个web应用的教程,由于很多国人盲目迷信谷歌,导致Go语言在国内的人气远超国外...需要的朋友可以参考下 1.Abstract 在学习web开发的过程中会遇到很多困难,因此写了一篇类似综述类的文章.作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码. 在描述中多是使用代码来描述使用方法不会做过多的说明.最后可以方便的copy代码来实现自己的需求. 本文适应对象: 对web开发有一定经验的人 能够灵活使用aj

在Ubuntu Linux上架设Web服务器详解

Apache 是一种功能强大的Web服务器.如今,Internet上无数运行在Linux上的Apache服务器正为Web世界的日益繁荣提供着有力的支撑.本文将向读者介绍如何在Ubuntu Linux系统迅速搭建Apache Web服务器. 尽管Ubuntu 是一种新兴的Linux分支,但Ubuntu 组织却为Apache提供了丰富的支持软件,这些软件都可以从发行版的光盘获取,也可以从官方站点轻松下载.所以,Ubuntu非常适合作为Web服务器的平台. 一. 安装Apache 下面,我们首先介绍如

Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服务器_Linux

之前一直使用Nginx+Fastcgi来搭建python web服务器,本文介绍Nginx+UWSGI组合来实现.uWSGI 是一个快速的.纯C语言开发的.自维护的.对开发者友好的WSGI服务器,旨在提供专业的 Python web应用发布和开发.它更符合python web的标准协议,速度要比Fastcgi要快.性能更加稳定. 一.安装平台 1.安装pcre 复制代码 代码如下: cd /home mkdir -p /home/install/nginx && cd /home/inst

apache web服务器架设教程

建立Linux下的Web服务器可以选用Netscape的Enterprise Server,或者使用免费软件Apache. Netscape可以完全支持基于IP的虚拟主机,但对基于域名的虚拟主机却不支持,因此只能显示最外面的一层网页.基于IP的虚拟主机需要一个独立的IP;基于域名的虚拟主机,可以多个虚拟主机共用一个IP.利用HTTP 1.1协议,靠不同的域名来区分可以大大节省IP地址资源.Apache完全支持以上两种虚拟主机方式,并且克服了Netscape经常出现服务塞死的现象.Apache是目

Linux Apache Web 服务器终极教程_unix linux

APACHE系统介绍  根据著名的WWW服务器调查公司所作的调查世界上百分之五十以上的WWW服务器都在使用Apache是世界排名第一的WEB服务器.Apache的诞生极富有戏剧性.当NCSA WWW服务器项目停顿后那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序他们也很快认识到成立管理这些补丁程序的论坛是必要的.就这样诞生了Apache Group后来这个团体在NCSA的基础上创建了Apache.  Apache的主要特征是  . 可以运行上所有计算机平台  . 支持最新的

如何用树莓派搭建个人 web 服务器

个人 Web 服务器即 "云",只不过是你拥有和控制它,而不是一个大型公司. 拥有一个自己的云有很多好处,包括可定制.免费存储.免费的互联网服务.通往开源软件之路.高安全性.完全控制您的内容.快速更改的能力.实验代码的地方等等. 这些好处大部分是无法估量的,但在财务上,这些好处可以为您每个月节省超过 100 美元. Building your own web server with Raspberry Pi 我本可以选择 AWS ,但我更喜欢完全自由且安全性可控,并且我可以学一下这些东

Windows下安装与配置Nginx web服务器

前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关nginx下的搭建与配置. 注意本次实验使用的windows server 2003 64bit,而且还是在虚拟机中.IP地址为192.168.1.221 首先去官网下载 nginx最新的的Windows版本,如下: http://nginx.org/en/download.html 下载到软件包后,解压 nginx-1.7.6.zip包到你喜欢的根

linux系统的Web服务器集成vsftp的方法

昨天我们写了一篇<linux下配置web+ftp服务器全教程(一) >说完了Web服务器的安装全过程,今天我们继续说下在apahce服务器上集成vsftp,以及apache和vsftp虚拟账户的权限配置. 三.web服务器下的ftp安装配置 linux下的ftp开源软件很多,我们这里选择的是vsftp,它的信息你可以去问度娘,不解释,直接进入安装配置,同样我们使用yum命令. yum install vsftpd pam db4 [安装vsftpd主程序/pam验证/db4工具] chkcon

如何保护Ubuntu 16.04上的NGINX Web服务器

什么是 Let's Encrypt Let's Encrypt 是互联网安全研究组织 (ISRG) 提供的免费证书认证机构.它提供了一种轻松自动的方式来获取免费的 SSL/TLS 证书 - 这是在 Web 服务器上启用加密和 HTTPS 流量的必要步骤.获取和安装证书的大多数步骤可以通过使用名为 Certbot 的工具进行自动化. 特别地,该软件可在可以使用 shell 的服务器上使用:换句话说,它可以通过 SSH 连接使用. 在本教程中,我们将看到如何使用 certbot 获取免费的 SSL