1. nginx简介
Nginx是一个异步框架的web服务器,可用于web服务、http缓存、反向代理、邮件代理和通用TCP/UPD代理,根据Netcraft的2018年2月统计nginx服务或代理了 25.92%最繁忙的网站,该软件由俄罗斯程序员伊戈尔·赛索耶夫于2004发布。而我们环境中最常见用于web服务,反向代理和负载均衡。
Nginx是一款免费的开源软件,当前最新稳定版是1.12。
2. nginx功能
2.1最基本的HTTP服务器功能
提供静态和索引文件(常用,直接打开index.html文件)
反向代理(常用)
负载均衡和容错(常用)
通过缓存FastCGI、memcached服务器加速
SSL支持(常用,用于启动网站https)
支持HTTP/2
2.2其他HTTP服务器功能
虚拟服务器(常用)
保持连接和长连接
日志访问格式
3xx-5xx错误代码重定向
重定向
Acl控制(根据ip设置白名单访问)
2.3 邮件代理服务器(很少使用)
http认证服务重定向到IMAP或POP3服务器
2.4 TCP/UDP代理服务器
支持tcp和udp的通用代理(偶尔使用)
3. 体系结构和可扩展
默认运行在nginx用户下,一个主进程和六个子进程
配置后可热加载,无需重启
支持跨平台:linux、windows、maxOS
支持各种epoll功能(事件功能)
支持各种模块
4. 安装nginx
//安装nginx 最新稳定版本,目录是1.12,这边需要注意的tcp代理最代版本要求是1.9,所以安装nginx最好选择在1.9之后
4.1将nginx官方源写到本机的yum文件中(自动判断centos7或centos6)
cat > /etc/yum.repos.d/nginx.repo <<!
[nginx]
name=nginx repo
baseurl=http:
//nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=
0
enabled=
1
!
|
4.2 刷新一下缓存
yum clean all
|
4.3 安装nginx
yum install nginx -y
|
4.4 设置nginx开机启动(自动判断centos7或centos6)
systemctl enable nginx || chkconfig nginx on
|
4.5 启动nginx(可用table键补全)
/etc/init.d/nginx start
|
4.6 查看nginx是否启动(默认nginx启动80端口)
netstat -tunlp | grep
80
|
4.7 查看nginx日志
Cat /var/log/nginx/access.log
|
5. 配置nginx
nginx主配置文件目录为/etc/nginx/nginx.conf
其中包含配置文件夹/etc/nginx/conf.d/ 所以主配置和包含不冲突的情况都生效。
现在切换到/etc/nginx/conf.d/ 目录下新建配置文件。
5.1 配置nginx 为web服务器
新建一个web.conf配置文件,内容如下:
server {
listen
80
;
server_name jxqtest.trc.com
10.200
.
131.138
;
root html;
location / {
index index.html;
root /data/
static
;
}
}
|
然后重载nginx,命令: /etc/init.d/nginx reload 然后在本地写hosts文件中写上nginx的ip: 10.200.131.138 jxqtest.trc.com 就可以使用jxqtest.trc.com访问这个web服务器了。 nginx的内容就写在/data/static/这个目录下,或者直接访问测试环境消息中心的ip也可以 10.200.131.138 这里为什么可以不加端口就能访问到,是因为浏览器默认就是80端口,其他端口就需要写ip:port的方式访问
5.2 配置nginx为反向代理服务器
新建一个proxy.conf的配置文件,内容如下:
server {
listen
80
;
server_name jxq.trc.com;
root html;
location ^~ /manager/ {
proxy_pass http:
//10.200.131.138:2048/;
}
}
|
然后重载nginx,命令: /etc/init.d/nginx reload然后在本地hosts文件中写上nginx的ip: 10.200.131.138 jxq.trc.com
然后通过访问jxq.trc.com/manager 就可以访问到消息中测试环境的manager服务了,这就是一个简单的反向代理配置
5.3 配置nginx负载均衡
新建一个upstream.conf配置文件,内容如下:
upstream sms-test {
server
10.200
.
131.138
:
8080
;
server
10.200
.
131.137
:
8080
;
}
server {
listen
80
;
server_name jxq2.trc.com;
location ^~ /sms/ {
proxy_pass http:
//sms-test/;
}
}
|
然后重载nginx,命令: /etc/init.d/nginx reload然后在本地hosts文件中写上nginx的ip: 10.200.131.138 jxq2.trc.com,通过访问jxq2.trc.com/sms 就可以访问到测试环境消息中心的sms服务了。在upstream定义了2台服务器,每次访问都会选择一台服务器,这样就实现负载均衡。