萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> linux搭建nginx WEB服務器的教程

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

copyright © 萬盛學電腦網 all rights reserved