Linux系统下编译安装Nginx服务器
http://sourceforge.net/projects/pcre/files/pcre (PCRE正则表达式库官方网址)安装NGINX前要先安装PCRE正则表达式库:
./configure --prefix=/usr/local/pcre 出现以下错误 (一般./configure即可, 笔者这里是直接./configure命令)
configure: error: You need a C++ compiler for C++support.(解决办法: yum install -y gcc gcc-c++)
make
make install
下面开始安装NGINX:
安装NGINX:
yum install libtool
yum install zlib zlib-devel
yum install openssl
./configure --prefix=/usr/local/nginx--with-http_stub_status_module
make
make install
检查是否安装成功:
cd/usr/local/nginx/sbin
./nginx -t
./nginx: error while loading shared libraries: libpcre.so.1: cannotopen shared object file: No such file or directory
从错误看出是缺少lib文件导致,进一步查看下:
ldd $(which /usr/local/nginx/sbin/nginx)
可以看出 libpcre.so.1 => not found并没有找到,进入/lib目录中手动链接下(这里的/lib目录指的是系统的根目录下面的lib目录)
32位系统 mysqlslave lib]# ln -s /usr/local/lib/libpcre.so.1/lib
64位系统 # ln -s /usr/local/lib/libpcre.so.1/lib64
结果显示:
nginx: the configuration file /usr/local/nginx/conf/nginx.confsyntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test issuccessful
启动nginx:
cd /usr/local/nginx/sbin 目录下面 输入 ./nginx启动nginx
ps -ef|grep nginx
netstat -nap|grep :80//查看80端口被哪个进程占用
service iptablesstop//把防火墙打开,否则nginx不能被访问
--------------------------------------------------------------------------------------------------
安装完nginx后需要配置监听的IP地址和端口,笔者这里是针对memcached+tomcat6做的配置,进入nginx的安装目录,笔者这里是/usr/local/nginx/conf这个目录,打开nginx.conf这个文件做如下修改:
# less nginx.conf
#usernobody;
#user www www;
worker_processes1;
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pid logs/nginx.pid;
pid /usr/local/nginx/logs/nginx.pid;
events {
use epoll;
worker_connections1024;
}
http {
include mime.types;
default_type application/octet-stream;
include /usr/local/nginx/conf/proxy.conf;#一定要指向代理文件
#log_formatmain '$remote_addr - $remote_user [$time_local] "$request"'
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_loglogs/access.log main;
sendfile on;
#tcp_nopush on;
tcp_nopush on;
#keepalive_timeout0;
keepalive_timeout65;
#gzipon;
upstream backend {
# ip_hash;
server192.168.0.93:8080;
server192.168.0.92:8080;
#jvm_route$cookie_JSESSIONID|sessionid reverse;
}
server {
listen 80;
server_name 192.168.0.93;
#charsetkoi8-r;
charsetutf-8;
#access_log logs/host.access.logmain;
location / {
root html;
indexindex.html index.htm;
proxy_pass http://backend;
#proxy_redirect default;
proxy_set_header XReal-IP $remote_addr;
proxy_connect_timeout 10;
#client_max_body_size 100m;
}
#error_page 404 /404.html;
# redirectserver error pages to the static page /50x.html
#
location~^/(WEB-INF)/ {
deny all;
}
error_page500 502 503 504/50x.html;
location =/50x.html {
root html;
}
# proxy the PHPscripts to Apache listening on 127.0.0.1:80
#
#location ~\.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHPscripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~\.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_indexindex.php;
# fastcgi_paramSCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to.htaccess files, if Apache's document root
# concurs withnginx's one
#
#location ~/\.ht {
# denyall;
#}
}
# another virtual host using mix of IP-,name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somenamealiasanother.alias;
# location /{
# root html;
# indexindex.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_keycert.key;
# ssl_session_timeout5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location /{
# root html;
# indexindex.html index.htm;
# }
#}
}
还需要在/usr/local/nginx/conf目录下手动建立proxy.conf文件,内容如下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;#获取真实IP
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
--------------------------------------------------------------------------------------------------
最后的/usr/local/nginx/conf目录下文件截图如下:
--------------------------------------------------------------------------------------------------
最后再多提一句日志的问题,nginx的默认日志目录为/usr/local/nginx/logs目录,这个目录下面有3个文件,分别是access.log,error.log和nginx.pid,其中error.log是错误日志,如果在启动nginx时遇到错误可以到这里来查看错误问题。
页:
[1]