一、一些概念的介绍,apache和Nginx的对比
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
网页的编辑语言:
html:为静态
PHP: 轻量级,动态
jsp(JAVA):重量级,动态
常用的性能评测检测,及其概念:
pv( page view) :统计浏览次数
uv(user view): 用户或阅度计算
qps(quest per Second): 每秒请求数
TPS(吞吐量):
apache和Nginx的区别
apache
apache的工作模式是prework。prefork采用预派生子进程方式,用单独的子进程来处理不同的请求。进程之间彼此独立,每个进程只含有一个线程。
因此apache特别的稳定,但是apache占用的资源也多
Nginx使用的工作模式是worker。相对于prefork,worker全新的支持多线程和多进程混合模型的MPM。由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是,worker也使用了多进程,每个进程又生成多个线程,以获得基于进程服务器的稳定性。
因此Nginx 可处理高并发,多线程,内存消耗小。负载均衡成本低(比较F5)。 支持rewrite 。支持热部署。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
二、Nginx的详细介绍
1、Nginx的安装,这里安装1.15.7版本,解压安装包,修改配置文件
tar zxf Nginx-1.15.7.tar.gz
ls
cd Nginx-1.15.7
vim src/core/Nginx.h
14 #define Nginx_VER "Nginx/" ##隐藏版本号,如果不隐藏Nginx的版本号,会受到攻击
vim auto/cc/gcc
171 # debug
172 #CFLAGS="$CFLAGS -g" ##关闭debug,如果不打开安装包大小为900+KB,如果打开安装包大小为6M,并且日志量非常大
2、编译环境检查,编译,安装
./configure --prefix=/usr/local/Nginx/ --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
make clean ##清理编译环境
./configure --prefix=/usr/local/Nginx/ --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--with-http_ssl_module ##安全套接字模块
--with-http_stub_status_module ##状态监控模块
--with-threads ##线程并发模块
--with-file-aio ##文件异步输入输出模块
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make && make install
3、查看Nginx的大小
cd /usr/local/
du -sh Nginx/
下面是安装后,的大小
[root@server1 local]# du -sh Nginx/
992K Nginx/
4、开启Nginx,查看进程
cd /usr/local/Nginx/sbin/
./Nginx
ps aux
root 9559 0.0 0.0 47312 1204 ? Ss 14:48 0:00 Nginx: master p
nobody 9560 0.0 0.1 47768 2112 ? S 14:48 0:00 Nginx: worker p
kill 9 9560
发现有主进程,和worker进程,当worker进程被kill后,主进程还会启动worker进程。
5、修改配置文件,及配置文件的解读
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nginx下有四个目录:conf html logs sbin
conf:配置文件目录
html:默认发布目录
logs:日志目录
sbin:启动目录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cd /usr/local/Nginx/conf/
vim Nginx.conf
user Nginx Nginx; ##进程开启是用Nginx用户开启的
worker_processes 4;
##也可以worker_processes auto;这里一般与cpu的数量相同。这里需要关闭虚拟机,增加cpu
worker_cpu_affinity 0001 0010 0100 1000; ##配置cpu
6、添加用户
cat /etc/passwd
userdel -r Nginx ##删除原来的用户
useradd -s /sbin/nologin -M -d /usr/local/Nginx Nginx
cat /etc/passwd
7、添加cpu
lscpu
poweroff
8、加载Nginx,查看进程,变为五个(1主,4worker)名用户名为Nginx
cd /usr/local/Nginx/sbin/
./Nginx -t
./Nginx -s reload
ps aux
结果如下
root 1303 0.0 0.0 47304 1204 ? Ss 14:59 0:00 Nginx: master p
Nginx 1304 0.0 0.0 47772 1844 ? S 14:59 0:00 Nginx: worker p
Nginx 1305 0.0 0.0 47772 1844 ? S 14:59 0:00 Nginx: worker p
Nginx 1306 0.0 0.0 47772 1844 ? S 14:59 0:00 Nginx: worker p
Nginx 1307 0.0 0.0 47772 1812 ? S 14:59 0:00 Nginx: worker p
9 、修改并发文件的多少
vim /usr/local/Nginx/conf/Nginx.conf
13 events {
14 worker_connections 65535; ##同时处理多少并发
15 }
10、反向代理,负载均衡
vim /usr/local/Nginx/conf/Nginx.conf
18 http {
19 upstream westos {
#ip_hash; ##一个客户端值可以访问一个ip
20 server 172.25.38.2:80;
21 server 172.25.38.3:80;
#server 127.0.0.1:80 backup; ##备用
22 }
121 server {
122 listen 80;
123 server_name www.westos.org;
124
125 location / {
126 proxy_pass http://westos;
127 }
128 }
129 }
cd /usr/local/Nginx/sbin/
./Nginx -s reload
测试:访问http://172.25.38.1
测试机器需要修改本地解析
[root@foundation38 images]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.38.1 server1 www.westos.org bbs.westos.org
172.25.38.3 server3
[root@foundation38 kiosk]# curl www.westos.org
<h2>server2</h2>
[root@foundation38 kiosk]# curl www.westos.org
server3
实现:网页维护
11、编辑配置文件
vim /usr/local/Nginx/conf/Nginx.conf
18 http {
19 upstream westos {
20 server 172.25.38.2:80;
21 server 172.25.38.3:80;
22 server 127.0.0.1:80 backup; ##127.0.0.1代表本机
23 }
12、编辑本机的默认发布目录
cd /usr/local/Nginx/html/
ls
cp index.html index.html.back
vim index.html
系统正在维护
13、重新加载Nginx
cd /usr/local/Nginx/sbin/
./Nginx -t
./Nginx -s reload
测试:关闭server2和server3,
[root@foundation38 images]# curl www.westos.org
系统正在维护
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。