Nginx的安装及配置
1.概述
Nginx是开源免费的一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,使用nginx网站用户有很多,如百度、京东、新浪、网易、腾讯、淘宝等。
1.1Nginx的优点
1.1.1可以高并发连接
官方测试Nginx能够支撑5万并发连接,实际生产环境中可以支撑2~4万并发连接数。原因,主要是Nginx使用了最新的epoll(Linux2.6内核)网络I/O模型,而Apache使用的是传统的Select模型,其比较稳定的Prefork模式为多进程模式,需要经常派生子进程,所以消耗的CPU等服务器资源,要比Nginx高很多。
1.1.2内存消耗少
Nginx+PHP(FastCGI)服务器,在3万并发连接下,开启10个Nginx进程消耗150MB内存,15MB*10=150MB,开启的64个PHP-CGI进程消耗1280内存,20MB*64=1280MB,加上系统自身消耗的内存,总共消耗不到2GB的内存。、
1.1.3成本低廉
购买负载均衡交换机或相关的云负载均衡服务(SLB)都是要花费很高昂的费用的,而Nginx为开源软件,可以免费用,并且可用于商业用途。
1.1.4配置文件非常简单
1.1.5稳定性高
1.1.6支持热部署
1.1.7节省带宽
2.安装nginx
1.下载源码包
2. 解压并进入解压目录
3.配置
4.编译和安装
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make && make install
2.1目录介绍
安装成功后,进入到安装后的目录中
conf 配置文件 配置虚拟主机文件就在此
html 网页文件
logs 日志文件
sbin 主要二进制程序 启动服务命令就在此
2.2修改nginx运行系统用户
创建Nginx运行使用的用户nginx
useradd nginx
修改nginx.cong配置文件
vi nginx.conf
// 用户 组
user nginx nginx;
2.3启动nginx
# 启动 nginx 服务
/usr/local/nginx/sbin/nginx
注:启动时一定要确保80端口没有被占用
netstat -tunpl /usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/nginx/sbin/nginx -s stop # 停止 Nginx # 设置开机启动
vi /etc/rc.local
# 添加如下命令
/usr/local/nginx/sbin/nginx
2.5配置文件
配置文件默认认为安装目录中的conf/nginx.conf文件
配置文件语法:http段 => server段 => location段 http段:是要包含所有的Server段,即将nginx所有的虚拟主机配置包含进去
server段:一个server即一个虚拟主机配置段落,后期有多少个虚拟主机取决于server段
location段:每个location段即表示该虚拟主机中的一个模块功能配置 注:配置后面分号不能少,{} 和配置之间要有空格
2.6配置虚拟主机
server {
listen 80; # 端口
server_name www.aa.com; # 域名
root /var/www/html; # 根目录 绝对地址
location / {
index index.html; # 默认缺省文件
}
}
3.支持php
apache因为把php模块集于一身成为一个整体,任何请求访问(静态,动态)都是apache(httpd)自己搞定的, 而nginx仅仅是一个传递的角色。它可以处理静态(html,图片,js,css等),但php相关的就得由后面的php-fpm来处理
# 搜索
yum search fpm|grep ^php
# 安装
yum install -y php71w-fpm.x86_64 # 启动
/usr/sbin/php-fpm
默认端口号为 9000
3.1配置nginx支持php
# server节点
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
# 非必须 默认索引页
#fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
4.开启gzip
压缩文件大小变小了,传输更快了,提高网站的访问速度和并发量。目前市场上浏览器都是支持GZIP的。IE6以下支持不好,会出现乱码情况。
## http 节点中设置 # 开启gzip
gzip on;
# 设置将被gzip压缩的响应的最小长度
gzip_min_length 200;
# 压缩级别 1-9
gzip_comp_level 6;
# 压缩在缓冲区块数和每块大小
gzip_buffers 32 4k; # | 16 8k;
# 设置压缩响应所需的最低HTTP请求版本
gzip_http_version 1.0;
gzip_types text/plain text/html text/css text/xml application/xml application/json application/javascript;
5.浏览器缓存
告知浏览器获取的信息是在某个区间时间段是有效的。在有效期内,不需要到服务器重新获取了,提高访问速度,节省服务器带宽资源。
## 设置在 server 中的 location 节点
# expires 1s 秒
# expires 2m 分
# expires 3h 时
# expires 6d 天
# ~* 不区分大小写
location ~* \.(jpg|jpeg|gif|bmp|png|ico|svg|mp4|mp3){
expires 7d; # 缓存1天
}
location ~* \.(css|js){
expires 1d; # 缓存1天
}
6.图片防盗链
网站中的很多地方都是使用到了图片,如商城中商品中就使用了大量的图片,而为了不使自己辛辛苦苦拍摄的图片被别人调用,同时别人调用也会对服务器产生压力和流量费用,这时就需要防盗链的功能。
location ~* \.(jpg|jpeg|gif|bmp|png|ico|svg|mp4|mp3)$ {
valid_referers none blocked *.1314000.cn 1314000.cn;
if ($invalid_referer) {
return 403;
}
}
Nginx的安装及配置的更多相关文章
- nginx的安装与配置
1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...
- python-django-fastdfs+Nginx的安装和配置_20191122
python-django-fastdfs+Nginx的安装和配置 FastDFS文件系统 FastDFS文件系统简介: 是c语言编写的,是淘宝的架构师写的,存储淘宝的图片,后来开源了, fastDF ...
- linux下nginx的安装及配置
一.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...
- linux应用之nginx的安装及配置(centos)
Ubuntu/CentOS 系统上安装与配置Nginx 一.在线安装: Ubuntu:sudo apt-get install nginx CentOS: sudo yum install nginx ...
- Centos7 中Nginx的安装与配置
安装与配置 1.安装nginx yum intsall nginxsudo systemctl start nginx 启动服务sudo firewall-cmd --permanent --zone ...
- 【Nginx】安装&环境配置
安装依赖包 安装make:yum -y install gcc automake autoconf libtool make 安装g++:yum -y install gcc gcc-c++ 安装pc ...
- Centos7下nginx的安装与配置
说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...
- 超详细Nginx的安装和配置教程
一. 编译安装nginx 下载nginx安装包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 也可以选择其他版本,官网:http://nginx. ...
- linux下nginx的安装和配置
准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...
- Linux下Nginx的安装与配置
安装前需要安装pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/1.解压缩: tar xjpf pcre-7.8.tar.b ...
随机推荐
- react之高阶组件(一)
当两个或多个组件有相同的地方,可以将相同的部分抽离出来 先创建三个组件A.B.C A.js import React, { Component } from 'react' class A exten ...
- Flask框架flash消息闪现学习与优化符合闪现之名
Flask的flash 第一次知道Flask有flash这个功能时,听这名字就觉得高端,消息闪现-是跳刀blink闪烁躲技能的top10操作吗?可结果让我好失望,哪里有什么闪现的效果,不过是平常的消息 ...
- golang数据结构之总结
golang语言的一些数据结构实现,包括: 队列(单队列.循环队列) 链表(单链表.双链表.循环链表(解决约瑟夫环问题)) 栈(实现加减乘除计算) 递归之迷宫问题 哈希表(员工管理系统) 树(三种遍历 ...
- openstack网络(三)
openstack网络架构 Neutron中的基本网络元素 插件扩展功能 ML2Modular Layer 2 plugin Neutron架构图 参考资料 openstack网络架构 Neutron ...
- dubbo 订阅 RPC 服务
Dubbo 订阅 RPC 服务 建立消费者者项目 pom.xml <?xml version="1.0" encoding="UTF-8"?> &l ...
- BZOJ 3108: [cqoi2013]图的逆变换
3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 627 Solved: 415[Submit][Statu ...
- 洛谷 题解 P1351 【联合权值】
Problem P1351 [联合权值] record 用时: 99ms 空间: 13068KB(12.76MB) 代码长度: 3.96KB 提交记录: R9883701 注: 使用了 o1 优化 o ...
- Yii2框架那些折磨人的坑
说点闲话 距离上次写博客,已经有一年了.在动手写之前,总是带着深深的罪恶感.被它折磨许久,终于,还是,动手了. 值得庆祝的一件事:最近开始健身了.每天动感单车45分钟,游泳45分钟,真的是(生)爽(不 ...
- tensorflow处理mnist(二)
用卷积神经网络解决mnist的分类问题. 简单的例子 一行一行解释这个代码. 这个不是google官方的例子,但是很简洁,便于入门.tensorflow是先定义模型,最后赋值,计算.为了讨论问题方便, ...
- Linux IO多路复用之epoll网络编程
前言 本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下: 客户端从标准输入读入一行,发送到服务端 服务端从网络读取一 ...