Nginx 安装和反向代理配置
基于CentOS 6.4 base server
1.下载:
wget http://nginx.org/download/nginx-1.7.9.tar.gz
2.解压:
tar zxvf nginx-1.7.9.tar.gz
3.更新好系统:
yum update
4.进入Ngnix目录:
cd nginx-1.7.9
5.安装C编译程序和依赖程序:
yum install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* libevent
yum -y install pcre-devel openssl openssl-devel
6.新建网站用户和组:
groupadd www
useradd -g www www
7.编译:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
8.显示以下信息表示编译成功:
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ md5: using system crypto library
+ sha1: using system crypto library
+ using system zlib library
9.安装:
make
make install
10.默认安装到:
/usr/local/nginx
11.启动:
/usr/local/nginx/sbin/nginx
12.检查状态:
[root@PHP-CentOS-TEST ~]# ps aux | grep nginx
root 4996 ...... 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 4997 ...... 0:00 nginx: worker process
root 5939 ...... 0:00 grep nginx
注:master是主进程,关闭的时候kill这个进程,其他子进程会自动关掉
13.防火墙放行80端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
service iptables save
exit
必要时,需要删除其它影响访问的防火墙条目:
iptables -L -n --line-number // 可以显示规则和相对应的编号
iptables -D INPUT 5 //删除INPUT链编号为5的规则
14.打开浏览器输入正确地址即可看到nginx的默认欢迎页
Welcome to nginx!
15.配置文件:
/usr/local/nginx/conf/nginx.conf
16.启动:
/usr/local/nginx/sbin/nginx
17.重启方法:
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
HUP信号是平滑重启
18.停止nginx
kill `cat /usr/local/nginx/logs/nginx.pid`
反向代理配置
nginx.conf 配置文件项目:
user www www;
worker_processes 4;
events {
worker_connections 51200;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 256;
client_header_buffer_size 16k;
large_client_header_buffers 4 32k;
proxy_connect_timeout 60;
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;
keepalive_timeout 60;
include vhosts.conf;
}
vhosts.conf配置文件内容:
server {
listen 80;
server_name servername; 注:每个站点一节,按需要配置,比如SSL等
access_log logs/other.log main;
location / {
root html;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
添加cacti监控
1,下载cacti for nginx 插件包:http://www.oschina.net/uploads/code/cacti-nginx.tar.gz
2,解压后一共有5个文件,首先把 get_nginx_socket_status.pl 以及 get_nginx_clients_status.pl 上传至服务器cacti 目录下scripts 并设置可执行权限跟755读写权限
测试是否有效:
问题1: no (LWP::UserAgent not found) 解决: yum -y install perl-libwww-perl 注:在cacti主机上安装缺失的组件 问题2: yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx. 注:解决不能在cacti主机上使用yum安装程序 解决: (1)打开/etc/yum.repos.d/xxxxxx.repo文件 (2)enabled=1改成enabled=0
3、在cacti管理面板导入
导入的方式: Import Templates > Import Template from Local File (浏览导入插件包另外2个文件)
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
如果导入
cacti_graph_template_nginx_clients_stat.xml、cacti_graph_template_nginx_sockets_stat.xml的时候,cacti 出现红字提醒:
Error: XML: Hash version does not exist.
原因是cacti 版本太旧,需要更新的版本
4、下一步能在 Graph Templates 中看到刚导入的模板,Nginx Clients Stat和Nginx Sockets Stat
进入New Graphs 选择任意一台已经创建好图标的监控服务器,跟创建其它图形一样创建就行。
其它杂项
1.设置开机启动:
1.1编辑/etc/rc.d/rc.local
1.2在文件尾添加启动项,/usr/local/nginx/sbin/nginx
2.修改DNS:
[root@Nginx-CentOS etc]# cat /etc/resolv.conf
nameserver 10.12.1.252
nameserver 10.12.1.250
配置传递客户端IP地址:
Ngnix程序做为反向代理使用时,后端服务器收到的请求地址是代理服务器,需要在反向代理服务器上传递客户端IP地址到后端服务器上。
需要使用–with-http_realip_module模块,没有则添加:
1.进入nginx的源码根目录,没有则重新下载。
2.查看ngixn版本和安装时编译参数:/usr/local/nginx/sbin/nginx -V
3.如果缺少相应模块,则重新添加编译:
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
4.make,不得使用make install,否则是覆盖安装。
5.make完成,在objs目录下多出一个nginx程序,这是编译后的程序。
6.备份旧的ngnix程序,用新程序覆盖,如果提示覆盖失败,则先删除旧程序再复制,测试过不影响网站运行。
7.平滑重启:/usr/local/nginx/sbin/nginx -s reload,或者按以上方法平滑重启。
8.验证编译参数是否正确。