一、nginx的解压安装
#tar xzvf nginx-1.6.0.tar.gz
#cd nginx-1.6.0
#./configure --prefix=/home/weixin/local/nginx //指定nginx的安装目录
--with-http_stub_status_module //使ngx_stub_status_modul 模块可用
--with-http_ssl_module //使用https协议模块
--with-openssl=/home/weixin/local/openssl-1.0.1h //读取openssl库的源码路径
--with-pcre=/home/weixin/local/pcre-8.34 //读取pcre库的源码路径
--user=weixin //设置nginx工作进程的用户
--group=wx //设置nginx的工作进程的用户组
#make
#make install
二、nginx
1、启动nginx服务时先检查nginx.conf配置文件是否正确
# /home/weixin/local/nginx/sbin/nginx -t
2、解决nginx默认的监听端口是80,但80端口是root用户才能使用的问题
(1)、方案一:
方案一:将nginx的监听端口改成1024以上的未被其他程序占用的端口(因为在linux2.6以上的内核1024以下的端口必须要root用户才能使用),然后在防火墙iptables中配置一个端口映射,把外部访问的80端口映射成nginx监听的端口。具体的操作步骤如下:
一、修改nginx的监听端口
使用weixin用户登陆,然后使用命令 vi /home/weixin/local/nginx/conf/nginx.conf 将默认的监听80端口改成8081,如图所示:
此时执行 /home/weixin/local/nginx/sbin/nginx -t 命令查看配置文件检查通过:
二、防火墙端口映射(切换到root用户执行以下命令)
#iptables -t nat - A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8081
然后重新加载端口映射列表,使用以下命令:
#service iptables restart
(2)、方案二:
方案二:将/home/weixin/local/nginx/sbin/nginx的启动用户weixin授权于root用户环境,即weixin用户执行此命令时相当于root用户启动,操作的具体步骤如下:
# su root
#hostname
#visudo
按a进入到append模式,在首部输入:
weixin <hostname>=NOPASSWD:/home/weixin/local/nginx/sbin/nginx
admin <redhat6.5>=NOPASSWD:/home/admin/local/nginx/sbin/nginx 保存后切换到weixin用户,使用sudo /home/weixin/local/nginx/sbin/nginx 就可以启动nginx服务。
顺便把停止的命令也加入到sudoers列表中,输入以下内容:
weixin <hostname>=NOPASSWD:/usr/bin/pkill -9 nginx
admin<redhat6.5>=NOPASSWD:/usr/bin/pkill -9 nginx 参数介绍:
hostname命令是查询当前服务器的主机名称,后续要使用到。
visudo命令是进入到对/etc/sudoers文件的编辑状态,注意命令后面是没有空格的。
weixin <hostname>=NOPASSWD:/home/weixin/local/nginx/sbin/nginx 命令中weixin标识授权此命令运行用root权限执行的用户名;hostname即为上面查询到的服务器的主机名称;NOPASSWD表示授权的用户在执行此命令的时候,无需输入用户的密码,默认情况是PASSWD需要输入密码的;/home/weixin/local/nginx/sbin/nginx表示weixin用户可以用root权限执行的具体的命令,支持同时授权多个命令,命令之间使用逗号隔开。
这两种方案都可以启动nginx,但是考虑到大用户量访问时,需要大量处于微信请求的协议转发和将请求反向代理到应用服务器,第一种端口映射的方案会影响程序的性能,所以综合考虑使用方案二的将weixin用户加入到root权限来启动nginx
三、nginx常用命令:
1、测试nginx.conf的配置是否正确
/usr/local/nginx/sbin/nginx -t
2、根据nginx.conf里的配置,启动nginx服务
/home/admin/local/nginx160/sbin/nginx -c /home/admin/local/nginx160/conf/nginx.conf