安装 Nginx 之前,必须解决依赖的问题,所以要首先安装上:pcre-x.x.x.tar.gz 和 pcre-devel-x.x.x.rpm 这两个包。
1. 安装 pcre-x.x.x.tar
2. 安装 pcre-devel-x.x.x.rpm
- tar zxvf pcre - x.x.x.tar.gz cd pcre - x.x.x. / configure make && make install
3. 安装好依赖之后就安装 nginx-x.x.x.tar.gz
- rpm - ivh pcre - devel - x.x.x.rpm
这里要注意的是:编译的时候,nginx 有很多模块可以编译的,但是对于一个用来进行转发的负载均衡 nginx 来说,以上两个足够了。
- tar zxvf nginx - x.x.x.tar.gz cd nginx - x.x.x. / configure--with - http_stub_status_module--prefix = /usr/local / nginx--with - debug--with - http_sub_module make && make install
安装好之后,nginx 的默认安装路径是:/usr/local/nginx/
4. 修改配置文件
要进行转发,就要把转发的服务器列表列出来;如下:
- vim / usr / local / nginx / conf / nginx.conf
最后做点小小的优化;
- http {...upstream Servers {
- server ip地址: 端口weight = 10; (权值,表明转发的优先权,相等的时候就是均衡转发) server ip地址:端口weight = 10;
- }
- server {..location / {
- proxy_pass http: //Servers;
- root html;
- index index.html index.htm;
- }
- }
- }
a。查看一下服务器的 cpu 核心数
然后再 nginx 的配置文件里面的开头处,加上:
- cat / proc / cpuinfo
b。接着在下面加上工作的连接数配置
- worker_processes 4;(这里取值可以是跟核心数一样,也可以是核心数的2倍,看需要)
下面是完整的修改后的配置文件:
- events {
- worker_connections 102400;(这里也是看情况修改)
- }
- #user nobody;
- worker_processes 4;#error_log logs / error.log;#error_log logs / error.log notice;#error_log logs / error.log info;#pid logs / nginx.pid;
- events {
- worker_connections 102400;
- }
- 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;#设定负载均衡列表upstream Servers {
- server ip地址:端口weight = 10;
- server ip地址:端口weight = 10;
- }
- server {
- listen 8080;
- server_name localhost;#charset koi8 - r;#access_log logs / host.access.log main;
- location / {
- proxy_pass http: //Servers;
- root html;
- index index.html index.htm;
- }#error_page 404 / 404.html;#redirect server error pages to the static page / 50x.html#error_page 500 502 503 504 / 50x.html;
- location = /50x.html {
- root html;
- }
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http:/ / 127.0.0.1;#
- }#pass the PHP scripts to FastCGI server listening on 127.0.0.1 : 9000##location~\.php$ {#root html;#fastcgi_pass 127.0.0.1 : 9000;#fastcgi_index index.php;#fastcgi_param SCRIPT_FILENAME / scripts$fastcgi_script_name;#include fastcgi_params;
- server {
- listen 8080;
- server_name localhost;#charset koi8 - r;#access_log logs / host.access.log main;
- location / {
- proxy_pass http: //Servers;
- root html;
- index index.html index.htm;
- }#error_page 404 / 404.html;#redirect server error pages to the static page / 50x.html#error_page 500 502 503 504 / 50x.html;
- location = /50x.html {
- root html;
- }
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http:/ / 127.0.0.1;#
- }#pass the PHP scripts to FastCGI server listening on 127.0.0.1 : 9000##location~\.php$ {#root html;#fastcgi_pass 127.0.0.1 : 9000;#fastcgi_index index.php;#fastcgi_param SCRIPT_FILENAME / scripts$fastcgi_script_name;#include fastcgi_params;#
- }#deny access to.htaccess files,
- if Apache 's document root
- # concurs with nginx's one##location~ / \.ht {#deny all;#
- }
- }
如果有错,会告诉你哪句有错的,很人性化。
- /usr/local / nginx / sbin / nginx - t
接着是启动:
如果遇到需要切换转发服务器的时候,可以用重新加载命令进行无缝切换:
- /usr/local / nginx / sbin / nginx
先修改好配置文件,然后执行以下命令,就完成了切换。出问题的服务器可以抽出来修理了,弄好了还可以这样放回去。
最后附上 nginx 的编译参数表:
- /usr/local / nginx / sbin / nginx - s reload
更多配置可参考:
- --prefix = <path > -Nginx安装路径。如果没有指定,默认为 / usr / local / nginx。
- --sbin - path = <path > -Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为 < prefix > /sbin/nginx。
- --conf - path = <path > -在没有给定 - c选项下默认的nginx.conf的路径。如果没有指定,默认为 < prefix > /conf/nginx.conf。
- --pid - path = <path > -在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 < prefix > /logs/nginx.pid。
- --lock - path = <path > -nginx.lock文件的路径。
- --error - log - path = <path > -在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 < prefix > /logs/error.log。
- --http - log - path = <path > -在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 < prefix > /logs/access.log。
- --user = <user > -在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为nobody。
- --group = <group > -在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为nobody。
- --builddir = DIR - 指定编译的目录
- --with - rtsig_module - 启用rtsig模块
- --with - select_module--without - select_module - 允许或不允许开启SELECT模式,如果configure没有找到更合适的模式,比如:kqueue(sun os),
- epoll(linux kenel 2.6 + ),
- rtsig(实时信号)或者 / dev / poll(一种类似select的模式,底层实现与SELECT基本相同,都是采用轮训方法) SELECT模式将是默认安装模式
- --with - poll_module--without - poll_module - 允许或不允许开启POLL模式,如果没有更合适的模式,则可以开启。
- --with - http_ssl_module - 开启HTTP SSL模块,使Nginx可以支持HTTPS请求,这个模块需要已经安装OPENSSL,在Debian系统上是libssl
- --with - http_realip_module - 启用ngx_http_realip_module
- --with - http_addition_module - 启用ngx_http_addition_module
- --with - http_sub_module - 启用ngx_http_sub_module
- --with - http_dav_module - 启用ngx_http_dav_module
- --with - http_flv_module - 启用ngx_http_flv_module
- --with - http_stub_status_module - 启用"server status"页
- --without - http_charset_module - 禁用ngx_http_charset_module
- --without - http_gzip_module - 禁用ngx_http_gzip_module.如果启用,需要zlib。
- --without - http_ssi_module - 禁用ngx_http_ssi_module
- --without - http_userid_module - 禁用ngx_http_userid_module
- --without - http_access_module - 禁用ngx_http_access_module
- --without - http_auth_basic_module - 禁用ngx_http_auth_basic_module
- --without - http_autoindex_module - 禁用ngx_http_autoindex_module
- --without - http_geo_module - 禁用ngx_http_geo_module
- --without - http_map_module - 禁用ngx_http_map_module
- --without - http_referer_module - 禁用ngx_http_referer_module
- --without - http_rewrite_module - 禁用ngx_http_rewrite_module.如果启用需要PCRE。
- --without - http_proxy_module - 禁用ngx_http_proxy_module
- --without - http_fastcgi_module - 禁用ngx_http_fastcgi_module
- --without - http_memcached_module - 禁用ngx_http_memcached_module
- --without - http_limit_zone_module - 禁用ngx_http_limit_zone_module
- --without - http_empty_gif_module - 禁用ngx_http_empty_gif_module
- --without - http_browser_module - 禁用ngx_http_browser_module
- --without - http_upstream_ip_hash_module - 禁用ngx_http_upstream_ip_hash_module
- --with - http_perl_module - 启用ngx_http_perl_module
- --with - perl_modules_path = PATH - 指定perl模块的路径
- --with - perl = PATH - 指定perl执行文件的路径
- --http - log - path = PATH - 指定http默认访问日志的路径
- --http - client - body - temp - path = PATH - 指定http客户端请求缓存文件存放目录的路径
- --http - proxy - temp - path = PATH - 指定http反向代理缓存文件存放目录的路径
- --http - fastcgi - temp - path = PATH - 指定http fastcgi缓存文件存放目录的路径
- --without - http - 禁用HTTP server
- --with - mail - 启用IMAP4 / POP3 / SMTP代理模块
- --with - mail_ssl_module - 启用ngx_mail_ssl_module
- --with - cc = PATH - 指定C编译器的路径
- --with - cpp = PATH - 指定C预处理器的路径
- --with - cc - opt = OPTIONS - Additional parameters which will be added to the variable CFLAGS.With the use of the system library PCRE in FreeBSD,
- it is necessary to indicate--with - cc - opt = "-I /usr/local/include".If we are using select() and it is necessary to increase the number of file descriptors,
- then this also can be assigned here: --with - cc - opt = "-D FD_SETSIZE=2048".
- --with - ld - opt = OPTIONS - Additional parameters passed to the linker.With the use of the system library PCRE in FreeBSD,
- it is necessary to indicate--with - ld - opt = "-L /usr/local/lib".
- --with - cpu - opt = CPU - 为特定的CPU编译,有效的值包括:pentium,
- pentiumpro,
- pentium3,
- pentium4,
- athlon,
- opteron,
- amd64,
- sparc32,
- sparc64,
- ppc64
- --without - pcre - 禁止PCRE库的使用。同时也会禁止HTTP rewrite模块。在"location"配置指令中的正则表达式也需要PCRE。
- --with - pcre = DIR - 指定PCRE库的源代码的路径。
- --with - pcre - opt = OPTIONS - 设置PCRE的额外编译选项
- --with - md5 = DIR - 设置MD5库的源代码路径
- --with - md5 - opt = OPTIONS - 设置MD5库的额外编译选项
- --with - md5 - asm - 使用MD5汇编源码
- --with - sha1 = DIR - 设置sha1库的源代码路径
- --with - sha1 - opt = OPTIONS - 设置sha1库的额外编译选项
- --with - sha1 - asm - 使用sha1汇编源码
- --with - zlib = DIR - 设置zlib库的源代码路径
- --with - zlib - opt = OPTIONS - 设置zlib库的额外编译选项
- --with - zlib - asm = CPU - zlib针对特定CPU的优化,合法的值为: pentium,
- pentiumpro
- --with - openssl = DIR - 设置OpenSSL库的源代码路径
- --with - openssl - opt = OPTIONS - 设置OpenSSL库的额外编译选项
- --with - debug - 启用调试日志
- --add - module = PATH - 添加一个在指定路径中能够找到的第三方模块
来源: http://lib.csdn.net/article/linux/44496