linux 运维 nginx服务器
nginx(web服务器)
nginx是一个高性能的http和反向代理服务器,
同时也是一个imap/pop3/smtp 代理服务器
比apache简单
官网:http://nginx.org
nginx配置文件及目录
/usr/local/nginx(安装目录)
/usr/local/nginx/conf/nginx.conf(主配置文件)
/usr/local/nginx/html(网页目录)
/usr/local/nginx/logs(日志文件,pid)
/usr/local/nginx/sbin/nginx(启动脚本)
nginx安装
[root@daili ~]# useradd nginx
[root@daili ~]# tar -zxvf nginx-1.7.10.tar.gz
[root@daili ~]# cd nginx-1.7.10
[root@daili nginx-1.7.10~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@daili nginx-1.7.10~]# make
[root@daili nginx-1.7.10~]# make install
[root@daili ~]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@daili ~]# cd /usr/local/nginx/sbin/
nginx(启动)
nginx -s stop(关闭)
nginx -s reload(重启)
[root@beiqiang ~]# fierfox http://192.168.4.5(测试访问nginx)
nginx选项
常用选项
-v:查看nginx版本
-V:查看编译参数
-t:测试默认配置文件
-c:指定配置文件
[root@daili nginx]# nginx -V
nginx version: nginx/1.8.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
nginx进程管理
显示进程:
ps aux |grep 进程名
停止nginx:
pkill/kill -信号 进程名/pid号
pkill -int nginx
常见信号:
HUP:重新配置文件
TERM,INT:快速关闭
QUIT:关闭主进程及子进程
USR1:重新打开日志文件
USR2:平滑升级可执行程序
案列:在不停止服务的情况下升级软件版本
[root@daili ~]# tar -zxvf nginx-1.8.0.tar.gz
[root@daili ~]# cd nginx-1.8.0
[root@daili nginx-1.8.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@daili nginx-1.8.0]# make
[root@daili ~]# cd /usr/cocal/nginx/sbin
[root@daili sbin~]# mv nginx nginxold (改名旧脚本)
[root@daili ~]# cd /root/nginx-1.0.5/objs/
[root@daili objs~]# cp nginx /usr/local/nginx/sbin(拷贝新脚本)
[root@daili nginx-1.8.0~]# make upgrade (升级软件)
。。。。
[root@daili sbin~]# ./nginx -v(查看版本)
——————————————————————————————————————————————————————————
nginx配置解析
全局选项:
user nginx:进程所有者
worker_processes 1;(启动进程数)
error_log /var/log/nginx/error.log(日志文件)
pid /var/run/nginx.pid(pid文件)
events {(单个进程最大并发量)
worker_connections 1024;
}
[root@daili ~]# vim /usr/local/nginx/conf/nginx.conf
http {
server {(定义虚拟主机)
listen 80;
server_name localhost;
location / {(发布目录)
root html;(网站根路径)
index index.html index.htm;
}
}
}
用户认证及访问控制
location / {(发布目录)
root html;(网站根路径)
index index.html index.htm;
allow 192.168.8.1;(只允许192.168.8.1访问)
deny all;
auth_basic "提示";(验证用户)
auth_basic_user_file /usr/local/nginx/conf/pass;(存用户文件密码)
}
[root@daili nginx]# yum -y install httpd-tools(安装生成密码的程序)
[root@daili ~]# htpasswd -cm /usr/local/nginx/conf/pass admin(创建认证用户,m选项加密)
[root@daili nginx]# cat /usr/local/nginx/conf/pass (查看用户名,密码)
admin:$apr1$H7ZU5sxb$wiKhvcV/g7jZYxEBlo5jh.
[root@daili ~]# nginx -s reload(重启)
实验:
访问控制和用户认证
访问控制:
[root@daili ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.html index.htm;
allow 192.168.4.1;
deny all;
}
[root@daili nginx]# nginx -s
[root@daili ~]# nginx -s reload(重启)
[root@beiqiang ~]# curl http://192.168.4.5(4.1ip测试访问成功)
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
[root@room1pc01]# curl http://192.168.4.5(其他主机访问失败)
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
用户认证:
location / {
root html;
index index.html index.htm;
auth_basic "hail hydra!";
auth_basic_user_file /usr/local/nginx/conf/pass;
}
[root@daili nginx]# yum -y install httpd-tools(安装生成密码的程序)
[root@daili ~]# htpasswd -cm /usr/local/nginx/conf/pass admin(创建认证用户,m选项加密)
[root@daili nginx]# cat /usr/local/nginx/conf/pass (查看用户名,密码)
hydra:$apr1$H7ZU5sxb$wiKhvcV/g7jZYxEBlo5jh.
[root@daili ~]# nginx -s reload(重启后测试访问)
综合测试:
部署nginx web服务器
所有人访问页面都需要认证
网站根目录下所有主机都可以访问
为网站创建一个二级目录/test,并生成index.html且这目录仅192.168.4.254可以访问
[root@daili nginx]# echo hydra > html/test/index.html
[root@daili test]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.html index.htm;
auth_basic "hail hydra!";
auth_basic_user_file /usr/local/nginx/conf/pass;
}
location /test {
allow 192.168.4.254;
deny all;
}
[root@daili nginx]# nginx -s reload(重启后测试)
——————————————————————————————————————————————————
虚拟主机
基于域名,基于端口,基于ip
基于域名的虚拟主机:
server {(第一个虚拟主机)
listen 80 default;(默认站点default)
server_name www.xx.com;(xx域名)
location / {
root html;(网页)
index index.html index.htm;
auth_basic "hail hydra!";
auth_basic_user_file /usr/local/nginx/conf/pass;
}
location /test {
allow 192.168.4.254;
deny all;
}
server {(第二个虚拟主机)
listen 80;
server_name www.xxx.com;(xxx域名)
location / {
root web;(去创建一个网页)
index index.html index.htm;
}
}
[root@daili nginx]# ls
html ........ web
[root@daili nginx]# nginx -s reload(重启测试)
基于端口的虚拟主机:
server {
listen 8080;端口
server_name www.xx.com;域名
location / {
root html;
index index.html index.htm;
auth_basic "hail hydra!";
auth_basic_user_file /usr/local/nginx/conf/pass;
}
location /test {
allow 192.168.4.254;
deny all;
}
server {
listen 8000;端口
server_name www.xx.com;域名
location / {
root web;
index index.html index.htm;
}
}
[root@daili nginx]# ls
[root@daili nginx]# nginx -s reload
基于ip的虚拟主机
server {(第一个虚拟主机)
listen 192.168.1.1:80;ip,端口
server_name www.xx.com; 域名
location / {
root html;
index index.html index.htm;
auth_basic "hail hydra!";
auth_basic_user_file /usr/local/nginx/conf/pass;
}
location /test {
allow 192.168.4.254;
deny all;
}
server {(第二个虚拟主机)
listen 192.168.1.2:80;ip,端口
server_name www.xx.com; 域名
location / {
root web;
index index.html index.htm;
}
}
[root@daili nginx]# nginx -s reload
——————————————————————————————————————————————————
ssl虚拟主机
算法:
对称加密:aes,des
非对称加密:rsa,dsa
信息摘要:md5,sha256
ssl加密网站的核心技术是非对称生成密钥
公钥,私钥,证书
[root@daili ]# cd /usr/local/nginx/conf/(到配置文件目录下)
[root@daili conf]# openssl genrsa -out my.key(生成私钥)
[root@daili conf]# openssl req -new -x509 -key my.key -out my.crt(生成自签名证书,依次填入信息)
-----
Country Name (2 letter code) [XX]:CN(国家)
State or Province Name (full name) []:beijing(省份)
Locality Name (eg, city) [Default City]:beijing(城市)
Organization Name (eg, company) [Default Company Ltd]:Anonymous(公司)
Organizational Unit Name (eg, section) []:Anonymous(部门)
Common Name (eg, your name or your server's hostname) []:test(注释)
Email Address []:Anonymous@Anonymous.com (邮箱)
[root@daili conf]# vim nginx.conf
server {(加密虚拟主机)
listen 443 ssl;(默认监听端口)
server_name www.xxxx.com;(加密虚拟主机)
ssl on; (开启ssl)
ssl_certificate my.crt;(指定证书文件)
ssl_certificate_key my.key;(指定私钥文件)
ssl_session_cache shared:SSL:1m;(缓存时间一分钟)
ssl_session_timeout 5m;(超时时间5分钟)
ssl_ciphers HIGH:!aNULL:!MD5;(除了md5加密 其他算法都支持,因为md5被破解了)
ssl_prefer_server_ciphers on;
location / {
root web2;(页面)
index index.html index.htm;
}
}
[root@beiqiang ~]# firefox https://www.xxxx.com(测试访问)
——————————————————————————————————————————————————
nginx负载分配方式:
轮询(默认的):逐一循环
weight:指定轮询几率,权重和访问比率成正比
ip_hash:根据客户端ip分配固定的后端服务器
fair:按后端服务器响应时间短的优先分配
服务器主机状态:
类型
down:表示当前server暂时不参与负载
max_fails:允许请求失败(默认为1)
fail_timeout:max_fails次失败后,暂停提供服务的时间
backup:备份服务器
nginx测试:
beiqiang:192.168.4.1 eth0
daili(装了nginx服务器): 192.168.4.5 eth0
相当于调度器 192.168.2.5 eth1
web: 192.168.2.100 eth1(内容不一样)
web2: 192.168.2.200 eth1(内容不一样)
两台web都安装了httpd,启动服务,配置页面,用调度器(主机adili)测试访问
[root@daili conf]# vim nginx.conf
http{
upstream hydra{(定义源服务器组)
server 192.168.2.100 max_fails=1 fail_timeout=30;(web主机)
server 192.168.2.200 max_fails=1 fail_timeout=30;(web2主机)
}
server {
listen 80;
server_name www.xx.com;
location / {
proxy_pass http://hydra;(当有人访问xx.com时,调用hydra集群)
root html;
index index.html index.htm;
}
}
}
————————————————————————————————————————————————————————
linux 运维 nginx服务器的更多相关文章
- Linux运维人员-服务器组成硬件基础
第1章 1.1关于运维人员 1.1.1 运维的职责 数据不能丢 网站7*24小时运行 保证用户体验(用户体验要好) 1.1.2 运维原则 简单.易用.高效 === 简单.粗暴 1.2 服务器 1.2 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- 做linux运维工程师,必须要掌握以下几个工具
linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...
- Linux运维入门到高级全套常用要点
Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...
- 要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...
要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ... [复制链接] 发表于 2013-12-13 15:59 | 来自 51CTO网页 [只看他] 楼主 本人 ...
- Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)
Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编 ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...
- Linux运维工程师入门的10大实用工具
说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. 工具如下: 1.Linux系统基础 这个不用说了,是基础中的基础,连这 ...
- Linux运维工程师入门须掌握的10个技术点
本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问 ...
- linux运维中的命令梳理(一)
在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...
随机推荐
- PHP中利用PHPMailer配合QQ邮箱实现发邮件
PHPMailer的介绍: 优点: 可运行在任何平台之上 支持SMTP验证 发送邮时指定多个收件人,抄送地址,暗送地址和回复地址:注:添加抄送.暗送仅win平台下smtp方式支持 支持多种邮件编码包括 ...
- NetworkManager 冲突
今天看centos7的视频的时候发现视频里总是配置ip失败,明明什么都对的,没有错误 至少在逻辑上是没有的 情况发生 1.centos7会自动启动这个服务,NetworkManager服务,重启后ip ...
- jsBOM内容
正如我们所知道的,javascript分为三大块,ECMAscript,BOM,DOM,ECMAscript固然重要:可是在web中使用ECMAscript很大程度上需要了解BOM即浏览器对象模型,否 ...
- python中用xpath匹配文本段落内容的技巧
content = item.xpath('//div[@class="content"]/span')[0].xpath('string(.)') content = item. ...
- ------- 软件调试——还原 QQ 过滤驱动对关键内核设施所做的修改 -------
-------------------------------------------------------------------------------- 在前一篇博文中,我们已经处理完最棘手的 ...
- selenium打开chrome浏览器代码
import os from selenium import webdriver chromedriver = "C:\Program Files (x86)\Google\Chrome\A ...
- BZOJ 3622: 已经没有什么好害怕的了 [容斥原理 DP]
3622: 已经没有什么好害怕的了 题意:和我签订契约,成为魔法少女吧 真·题意:零食魔女夏洛特的结界里有糖果a和药片b各n个,两两配对,a>b的配对比b>a的配对多k个学姐就可能获胜,求 ...
- POJ 2409 Let it Bead [置换群 Polya]
传送门 题意:$m$种颜色$n$颗珠子,定义旋转和翻转两种置换,求不等价着色数 暴力求每个置换的循环节也许会$T?$ 我们可以发现一些规律: 翻转: $n$为奇数时每个置换有$1+\frac{n-1} ...
- Matplotlib学习笔记(一)
原 matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .ca ...
- python用Django+Celery+Redis 监视程序(一)
C盘创建一个目录就叫DjangoDemo,然后开始在该目录下操作. 1.新建Django工程与应用 运行pip install django 安装django 这里我们建一个名为demo的项目和hom ...