Liunx之nginx配置
一、nginx安装
卸载yum安装的ngjnx
yum remove nginx -y
编译安装nginx步骤
编译安装nginx的步骤
1.解决软件依赖
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel
openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y 2.下载nginx的源代码包,这里用的淘宝的tengine
wget http://tengine.taobao.org/download/tengine-2.3.1.tar.gz 3.解压缩tnginx包
tar -zxvf tengine-2.3.1.tar.gz 4.进入源码目录,开始编译三部曲
./configure --prefix=/opt/tngx231/
make && make install 5.可以使用了
发现缺少sqllite这个一个软件依赖包,就得直接删除编译好的软件,重新编译即可 6.进入安装好的tngx321目录,查看有哪些东西
conf 存放nginx的配置文件
html 存放前端文件的
logs 存放nginx的日志文件 进入sbin 启动nginx
./nginx 7.配置path变量,可以快捷使用nginx命令
vim /etc/profile
PATH='/opt/python36/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/tngx231/sbin' 8.查看nginx的首页文件 index.html
二、nginx配置
nginx的功能性学习,所有的功能都是通过nginx.conf配置文件定义的
修改配置参数,就实现了不同的功能
1、使用nginx配置一个站点,进行访问,例如index.html
vim /html/index.html

2、nginx.conf中的配置
【虚拟主机站点功能】
server {
# 监听端口
listen 85;
# 域名可以有多个用空格隔开
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#access_log "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G" main;
#网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配
#当请求url长这样时:
# 192.168.16.142:85/ 就走如下location配置
location / {
#deny 192.168.16.0/24;
#root参数是定义网页根目录的,可以修改
root /opt/html;
#index 定义网页首页名字的
index index.html index.htm;
}
#当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
location /pic {
#通过alias别名参数,去这个路径下找
alias /opt/pic/;
}
# 404页面
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
}
【日志功能】
找到nginx.conf中的http{}代码块,然后,找到里面的如下配置
#日志格式设定
#$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
#$remote_user:用来记录客户端用户名称;
#$time_local: 用来记录访问时间与时区;
#$request: 用来记录请求的url与http协议;
#$status: 用来记录请求状态;成功是200,
#$body_bytes_sent :记录发送给客户端文件主体内容大小;
#$http_referer:用来记录从那个页面链接访问过来的;
#$http_user_agent:记录客户浏览器的相关信息;
#通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。
反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
所有的日志信息和错误信息都在logs文件夹下:

access.log日志信息:
error.log错误日志:
nginx.pid当前nginx运行的进程id:

【禁止访问】
在nginx.conf中,找到如下参数,修改
location / {
#拒绝访问,192.168.16.0网段的同学都无法访问 /24是子网掩码的意思
deny 192.168.16.0/24;
root html;
index index.html index.htm;
}
【修改虚拟主机的家目录】
虚拟主机就是nginx.conf中 server{}标签定义的代码
网站的路径匹配,如同django的urls匹配,对用户的访问url进行路径分配
#当请求url长这样时:
# 192.168.16.142:85/ 就走如下location配置
location / {
#deny 192.168.16.0/24;
#root参数是定义网页根目录的,可以修改
root /opt/html;
#index 定义网页首页名字的
index index.html index.htm;
}
#当用户请求url是 192.168.16.142:85/pic/monkeyKing.jpg
location /pic {
#通过alias别名参数,去这个路径下找
alias /opt/pic/;
} location /media {
alias /opt/media;
}
【404页面】
-nginx的404页面,在nginx.conf中,找到一个error_page 参数
#当请求错误码是404 时,就返回一个404.html给用户查看,并且这个文件在网页根目录下
error_page 404 /404.html;
【虚拟主机功能】
一个nginx下运行多个网址
# 找到nginx安装目录下的conf文件夹,找到nginx.conf
# 通过编写多个server标签实现多虚拟主机
# nginx.conf配置如下:
# 虚拟主机1:
server {
# 监听的端口
listen 80;
#这里进行域名匹配
server_name www.s20hanju.tv;
#这里进行路径匹配
location / {
#root定义网页根目录
root /opt/s20/hanju;
#index 定义网站首页文件名
index index.html;
}
}
# 虚拟主机2:
server {
listen 81;
server_name www.s20lol.tv;
location / {
root /opt/s20/lol;
index index.html;
}
} # 改完nginx.conf的配置,需要重启nginx -s reload # 分别准备hanju和lol的数据文件夹 # 然后再去windows中准备hosts文件,进行域名解析
# 文件绝对路径
# C:\Windows\System32\drivers\etc\hosts
# 内容如下:
192.168.16.142 www.s20hanju.tv
192.168.16.142 www.s20lol.tv # 最后在windows中进行访问,分别访问lol和hanju的网址内容
域名解析是先从本地的host文件中开始找,如果找不到会去dns找;
3、nginx的启停命令
直接输入 nginx 是启动
nginx -s stop 停止
nginx -s reload 平滑加载,不重启nginx,重新读取配置文件,生效
4、liunx的压测命令
1.安装ab命令
yum -y install httpd-tools
2.使用ab压测命令
-n requests #执行的请求数,即一共发起多少请求。 -c concurrency #请求并发数。 -k #启用HTTP KeepAlive功能,即在一个HTTP会话中执行多个请求。
# 进行压测命令,统计网站请求数
ab -kc 1000 -n 100000 http://192.168.16.142/
5、nginx状态模块
找到nginx.conf然后再找到一个虚拟主机server标签,添加如下配置即可
location /status {
#开启nginx状态功能
stub_status on;
}
Liunx之nginx配置的更多相关文章
- Liunx下Tomcat+MYSQL+Nginx配置
环境:centos6.4 min #安装编译库及依赖模块 yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib z ...
- Nginx 笔记(三)nginx 配置实例 - 反向代理、负载均衡、动静分离
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.反向代理 反向代理准备工作: (1)在 liunx 系统安装 tomcat,使用默认端口 8080 ...
- nginx配置反向代理或跳转出现400问题处理记录
午休完上班后,同事说测试站点访问接口出现400 Bad Request Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...
- Windos环境用Nginx配置反向代理和负载均衡
Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...
- Windows下Nginx配置SSL实现Https访问(包含证书生成)
Vincent.李 Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...
- Nginx 配置简述
不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要 ...
- Nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- Nginx配置Https
1.申请证书: https://console.qcloud.com/ssl?utm_source=yingyongbao&utm_medium=ssl&utm_campaign=qc ...
- nginx配置为windows服务中的坑
网上搜索“nginx 配置为windows服务”,很容易搜索到使用windows server warpper来配置,于是按照网上的方法我从github上的链接下载了1.17版本,前面都很顺利,很容易 ...
随机推荐
- (六)springmvc之ModelAndView、Model、Map、ModelMap
<a href="<%=request.getContextPath()%>/responseData/response_1">使用原生的作用域</a ...
- 【原创】大叔经验分享(86)hive和mysql数据互导
hive和mysql数据互导,首先想到的是sqoop,并且可以和调度框架(比如oozie等)配合配置定时任务,还有一种更简单的方式是通过spark-sql: CREATE OR REPLACE TEM ...
- 把zTree前的展开收起图标改为三角形,且只有在点击三角形图标时才展开子节点解决方案
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta ht ...
- stm32 RS485 SP3485
RS485 是半双工通信(2 线制) SP3485芯片的DE与RE短接在一起连接在STM32F1芯片的PG3上,通过PG3管脚就可以控制 SP3485的收发,当PG3=0时,为接收模式,当PG3=1时 ...
- redis集群安装2
概要:本文主要介绍如何在Centos7中单机搭建redis集群三主三从,按照本文绝对可以实现该需求,至于先搭建单机版主要为了方便理解redis集群,为下一步开发或生产上redis集群做铺垫.同时本 ...
- selenium重定向新窗口
1.跳转新窗口 # 浏览器跳转新窗口后,selenium绑定新窗口 print('页面跳转后重新绑定selenium.') time.sleep(3) search_window = driver.c ...
- 成为一个高级java架构师所需要具备那些技能呢?
一.什么是架构师 所谓架构师,思考的是全局的东西,是如何组织你的系统,以达到业务要求,性能要求,具备可扩展性(scalability),可拓展性(extendability),前后兼容性等.可能涉及到 ...
- go语言的局部变量在堆上还是栈上?
在讨论之前,先看如下代码: type treeNode struct { value int left, right *treeNode } func createNode(value int) *t ...
- Flutter——Expanded组件("可伸缩"组件)
Expanded组件可以结合Row和Column布局组件使用. Expanded组件的常用属性 属性 说明 flex 元素占整个父Row/Column的比例 child 子元素 import 'pac ...
- php curl请求接口并获取数据
当我们在做php开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能. 下面是对c ...