[root@server1 ~]# tar -zxf nginx-1.10.1.tar.gz
[root@server1 ~]# cd nginx-1.10.1
[root@server1 nginx-1.10.1]# vim src/core/nginx.h
修改至如下
[root@server1 nginx-1.10.1]# vim auto/cc/gcc
[root@server1 ~]# tar -zxf nginx-sticky-module-ng.tar.gz
源码安装三步骤,注意,在编译检查过程中检查到需要依赖包pcre-devel openssl-devel zlib-devel
[root@server1 nginx-1.10.1]# yum install pcre-devel openssl-devel zlib-devel -y
[root@server1 nginx-1.10.1]# ./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-sticky-module-ng/
[root@server1 nginx-1.10.1]# make
[root@server1 nginx-1.10.1]# make install
ok 安装完成
[root@server1 nginx-1.10.1]# vim /usr/local/nginx/conf/nginx.conf
修改用户为nginx
events {
worker_connections 65535; #修改worker连接数
}
gzip on;
tcp_nopush on;
tcp_nodelay on;
[root@server1 nginx-1.10.1]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@server1 nginx-1.10.1]# nginx #启动nginx
[root@server1 ~]# useradd -u 800 nginx
2.由于我们在配置文件中修改了连接数,但这只是在应用程序层面的修改,我们需要对系统层面上的进行修改
[root@server1 ~]# vim /etc/security/limits.conf
nginx - nofile 65535 #在配置文件的末尾添加
以nginx用户身份验证
[root@server1 ~]# su - nginx
3.由于我们在配置文件中做了https的相关配置,所以我们需要制作一个证书,使https生效
[root@server1 ~]# cd /etc/pki/tls/certs
[root@server1 certs]# make cert.pem
[root@server1 certs]# mv cert.pem /usr/local/nginx/conf/ #必须移至改目录下
[root@server1 certs]# nginx -s reload #重新加载,使其生效
配置证书举例:
在浏览器上获取证书
ok~ 至此nginx的安装和配置已经结束
3.nginx的应用
更改配置文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
#在http语句块中添加以下内容
location /status {
stub_status on;
access_log off;
allow 172.25.70.250;
deny all;
}
[root@server1 ~]# nginx -s reload #重新加载使其生效
#修改配置文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
#在配置文件末尾添加以下内容
server{
listen 80; #设置侦听端口
server_name www.server1.com; #设置访问的域名
location /{
root /www1; #设置默认发布目录
index index.html; #设置在默认发布目录的默认发布文件名称
}
}
编辑默认发布目录下的默认发布文件
[root@server1 ~]# mkdir /www1
[root@server1 ~]# vim /www1/index.html
nginx http server</h1>
重启服务,使其生效
[root@server1 ~]# nginx -s reload
在服务器上添加域名解析
[root@server1 ~]# vim /etc/hosts
172.25.70.1 www.server1.com
测试
[root@server1 ~]# curl www.server1.com #成功访问
nginx http server</h1>
#修改配置文件
[root@server1 ~]# vim /usr/local/nginx/conf/nginx.conf
#在http语句块中添加,配置负载均衡池nginx
upstream nginx{
server 172.25.70.2:80; #指定后端的服务器,以及侦探端口
server 172.25.70.3:8080; #由于nginx属于七层应用,支持端口的转发,所以这里nginx的侦听端口是80,后端的apache服务的侦听端口可以不是80(以8080为例)
}
#在https server的末端添加
server{
listen 80;
server_name www.nginx.com;
location /{
proxy_pass http://nginx; #将所有请求转发给nginx池的应用处理
}
}
[root@server1 ~]# nginx -s reload #使修改的配置文件生效
Nginx 端口转发实现原理是:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。
对ip为172.25.70.2的server2和ip为172.25.70.3的server3做的配置
#修改server3的httpd服务侦听端口
[root@server3 ~]# vim /etc/httpd/conf/httpd.conf
Listen 8080;
#为server2和server3编辑默apache默认发布文件
[root@server2 ~]# vim /var/www/html/index.html
the page from server2
[root@server3 ~]# vim /var/www/html/index.html
the page from server3
#启动server2和server3的httpd服务
/etc/init.d/httpd start
为测试机(本例是server1)添加域名解析
[root@server1 ~]# vim /etc/hosts
172.25.70.1 www.nginx.com
测试
[root@server1 ~]# curl www.nginx.com
the page from server2
[root@server1 ~]# curl www.nginx.com
the page from server3
端口转发成功,实现负载均衡。