引言

为什么要学习Nginx

问题一: 客户端到底要将请求发送给哪台服务器?

问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了

问题三: 客户端发送的请求可能是申请动态资源的,也可能是申请静态资源的

在搭建集群后使用Nginx做反向代理服务器

Nginx介绍

Nginx是由俄罗斯研发的,应对Ramble的网站,并且2004年发布第一个版本

Nginx的特点:

  1. 稳定性机枪,7*24小时不间断运行
  2. Nginx提供了非常丰富的配置实例
  3. 占用内存小,并发能力强

Nginx的安装

使用docker-compose.yml安装Nginx

version: '3.1'
services:
nginx:
restart: always
image: daocloud.io/library/nginx:latest
container_name: nginx
ports:
- 81:80

在/opt/文件夹下创建一个docker_nginx文件夹

mkdir docker_nginx

在此文件夹下创建一个文件名为docker-compose.yml的文件将上面的复制进去,保存退出,在当前文件夹运行

docker-compose up -d

测试是否安装成功

这时使用浏览器访问ip地址:81显示如下即安装成功

Nginx的配置文件

位置: /etc/nginx/nginx.conf

user  nginx;
worker_processes 1; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; # 以上同城全局模块,
# worker_processes他的数值越大,Nginx的并发能力就越强
# error_log为错误日志
events {
worker_connections 1024;
}
#events块
#worker_connections他的数值越大,Nginx开发能力越强,上面这俩一般别动,专门的运维人员会操作 http {
include /etc/nginx/mime.types;
default_type application/octet-stream; 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 /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf;
}
#http块
#incloude代表引入一个外部的文件 -> /mine.types中放着大量的媒体类型
#最下面的incloude ->引入了conf.d目录下的以.conf为结尾的配置文件,这个才是我们该关注的
#如下,删除了#注释的内容,精简了一下
server {
listen 80;
listen [::]:80;
server_name localhost; location / {
root /usr/share/nginx/html;
index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
127.0.0.1:9000
/scripts$fastcgi_script_name;
   #server块
#listen: 代表Nginx坚挺的端口号
#localhost : 代表Nginx接收请求的ip
#location块
#root:将接收到的请求根据/usr/share/nginx/html去查找静态资源
#index: 默认去上述的路径中找到index.html或者index.html
}

修改docker-compose文件

version: '3.1'
services:
nginx:
restart: always
image: daocloud.io/library/nginx:latest
container_name: nginx
ports:
- 81:80
volumes:
- /opt/docker_nginx/conf.d/:/etc/nginx/conf.d

首先退出刚才的容器

ctrl+c或者exit

关闭容器docker-compose down

编辑docker-compose.yml:vi docker-compose.yml

加上最后两行

再重新构建:docker-compose build

重新启动:docker-compose up -d

然后就会发现当前目录下会多一个conf.d的目录但是里面啥也没有

这时候刚才的网页就进不去了,因为没有server块,所以进行手动编辑一下

vi default.conf

将以下代码复制进去,这里不是yml文件所以格式么有什么要求分号结尾就行

server{
listen 80;
server_name localhost; location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

重启一下:

回到yml文件所在目录dicker-compose restart

重启之后再次刷新浏览器,你又成功了!!!!

最新文章

  1. Windows10应用Docker部署DoNet Core
  2. JavaScript事件对象
  3. VC++6.0 Debug单步调试
  4. CSS学习篇核心之——盒子模型
  5. Object Pascal对象模型中构造函数之研究
  6. const 成员方法
  7. CF Vitaly and Strings
  8. php做EXCEL数据导出导入开发的一些小问题
  9. 函数学习(JY07-JavaScript-JS基础03)
  10. PHP学习之-1.2 认识PHP脚本标识
  11. C 函数参数 char **s与char *s[]
  12. 【Kafka专栏】-Kafka从初始到搭建到应用
  13. idea中文乱码
  14. netty 学习(1)
  15. import tensorflow 报错: tf.estimator package not installed.
  16. springMVC4(7)模型视图方法源代码综合分析
  17. MySQL数据分组Group By 和 Having
  18. xdoj 1067组合数学+动态规划 (一个题断断续续想了半年 233)
  19. C++进阶--解谜operator new/delete
  20. OBS显示器获取显示黑色没有图像

热门文章

  1. Python Ethical Hacking - Persistence(2)
  2. 写给.NET开发者的Python教程(二):基本类型和变量
  3. Centos 7 静态IP设置
  4. JMS资源文件下载列表
  5. B站学习的回顾总结
  6. C语言中对文件的读写的一些浅显理解
  7. 网络通信机制:Socket、TCP/IP、HTTP
  8. selenium 破解登录滑块验证码mu
  9. IPython magic命令
  10. python基础day7_编码及小数据池