我用的安装参数
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_spdy_module --with-http_stub_status_module --with-pcre --with-http_gzip_static_module
--add-module=/usr/local/ngx_http_substitutions_filter_module
-----------------------------------------------------------------------------------------
以下原文
========
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强,第一个公开版本0.1.0发布于2004年10月4日,目前最新版本是2014年12月2日发布的1.7.8。
今天在ttlsa网站里学习了Nginx的安装方法,在虚拟机里测试过,然后又在服务器上安装了一遍,下面我把安装过程总结一下。
Linux系统:Centos 6.5 x64
Nginx版本:1.7.8
1、安装prce(重定向支持)和openssl(https支持,如果不需要https可以不安装。)
yum -y install pcre*
yum -y install openssl*
CentOS 6.5 我安装的时候是选择的“基本服务器”,默认这两个包都没安装全,所以这两个都运行安装即可。
2、下载nginx 1.7.8
wget http://nginx.org/download/nginx-1.7.8.tar.gz
3、解压编译安装
tar -zxvf nginx-1.7.8.tar.gz
然后进入目录编译安装
cd nginx-1.7.8
./configure --prefix=/usr/local/nginx-1.5.1 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
如果没有error信息,就可以执行下边的安装了:
make
make install
4、开启nginx进程
/usr/local/nginx-1.7.8/sbin/nginx
重启或关闭进程:
/usr/local/nginx-1.7.8/sbin/nginx -s reload
/usr/local/nginx-1.7.8/sbin/nginx -s stop
5、关闭防火墙,或者添加防火墙规则就可以测试了。
service iptables stop
或者编辑配置文件:
vi /etc/sysconfig/iptables
添加这样一条开放80端口的规则后保存:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重启服务即可:
service iptables restart
ok,,可以浏览器访问了。
===========================================以下是加载subs_filter模块==========
使用nginx的反向代理功能搭建nuget镜像服务器时,需要针对官方nuget服务器的响应内容进行字符串替换,比如将www.nuget.org替换为镜像服务器的主机名,将https://替换为http://。而nginx没有内置这个功能,需要使用第三方module,比如subs_filter。
在nginx中配置module,不像apache那么简单(复制module文件,修改配置文件),需要将module的源码引入nginx的源码,自己编译nginx并安装。
下面分享一下自己在centos上编译并安装包含subs_filter模块的nginx的实际操作步骤。
0)如果centos上没有安装nginx,先用yum安装一下,yum安装时会自动添加一些nginx的初始配置文件,比如/etc/rc.d/init.d/nginx,/etc/nginx/nginx.conf(自己编译安装时不会添加这些配置文件)。
yum install nginx
1)从 http://wiki.nginx.org/Install 的 #Source Releases 部分得到nginx的源码下载地址,下载解压。
wget http://nginx.org/download/nginx-1.8.0.tar.gz tar xf nginx-1.8.0.tar.gz
2)git签出subs_filter的源码(参考 nginx_substitutions_filter)。
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
(注:保存路径为/usr/local/ngx_http_substitutions_filter_module)
3)nginx编译配置
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module --add-module=/usr/local/ngx_http_substitutions_filter_module
最后的--add-module就是引入的subs_filter模块。
4)编译并安装nginx
make && make install
5)在/etc/nginx/nginx.config中配置subs_filter
server { listen 80; listen [::]:80; server_name [mirror_host_name]; location / { proxy_pass http://www.nuget.org; proxy_cache nuget-cache; proxy_cache_valid 168h; proxy_ignore_headers Set-Cookie Cache-Control; subs_filter www.nuget.org [mirror_host_name]; subs_filter https:// http://; } }
5)重启nginx服务
systemctl restart nginx