Linux 私房菜————Nginx网站服务|访问状态统计配置|访问控制|

news/2024/5/8 23:29:44/文章来源:https://blog.csdn.net/qq_43301008/article/details/117558869

1.Nginx概述

一款高性能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30000~50000个并发请求

2.编译安装Nginx服务

2.1 关闭防火墙将nginx所需软件包到/opt目录下

systemctl stop firewalld
systemctl disable firewalld
setenforce 0nginx-1.12.0.tar.gz
tar zxvf nginx-1.12.2.tar.gz 

2.2 安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

在这里插入图片描述

2.3 创建运行用户、组

(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)

useradd -M -s /sbin/nologin nginx

在这里插入图片描述

2.4 编译安装Nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \				      #指定nginx的安装路径
--user=nginx \										#指定用户名
--group=nginx \										#指定组名
--with-http_stub_status_module						#启用 http_stub_status_module 模块以支持状态统计make && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/		#让系统识别nginx的操作命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5 检查、启动、重启、停止 nginx服务

nginx -t								#检查配置文件是否配置正确
nginx							#启动		
cat /usr/local/nginx/logs/nginx.pid		#先查看nginx的PID号
kill -3 <PID号>
kill -s QUIT <PID号>				#停止
killall -3 nginx
killall -s QUIT nginxkill -1 <PID号>					#重载
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
#日志分隔,重新打开日志文件
kill -USR1 <PID号>
#平滑升级
kill -USR2 <PID号>

2.6 添加 Nginx 系统服务

方法一

vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)$COM
;;stop)kill -s QUIT $(cat $PID)
;;restart)$0 stop$0 start
;;reload)kill -s HUP $(cat $PID)
;;*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1esac
exit 0chmod +x /etc/init.d/nginx
chkconfig --add nginx							#添加为系统服务
systemctl stop nginx
systemctl start nginx

在这里插入图片描述
在这里插入图片描述

方法二

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecrReload=/bin/kill -s HUP $MAINPID
ExecrStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

3.添加Nginx系统服务并赋予执行权限

chmod +x /etc/init.d/nginx
chkconfig --add nginx

4.Nginx主配置文件

user_nobody 运行用户,若编译时未指定则默认为nobdy
worker_processes 1; 工作进程数量 可配置为内核数 * 2[一般1就够了]
error_log logs/error.log; 错误日志的位置
pid logs/nginx.pid PID文件位置

4.1 如何提高性能

I/O事件配置

events {use epoll;#2.6以上版本的系统核心建议使用epoll模型以提高性能worker _connections 4095#每个进程处理 4096 个连接

4.2 如何提高每个进程的连接数?

在Linux平台进行高并发TCP连接处理时,最高的并发数量都要受到系统对
用户单一进程同时可打开文件数量的限制。每个TCP连接都要创建一个socket
每个socket句柄同时也是一个文件句柄
ulimit -n 65535 临时修改本地每个进程可以同时打开的最大文件数
ulimit -a 可以查看当前系统用户可以打开最大文件数[open files项]
在这里插入图片描述
在这里插入图片描述

5.HTTP配置

http {##文件扩展名与文件类型映射表include     mime.types;##默认文件类型default_type  application/octet-stream;##日志格式设定#log_format  main   '$remote_ addr - $remote. user [stime_ local] "$request" '#                   '$status $body_ bytes_ sent "Shttp_ referer" '#                   "$http_user_agent" "$http_x_forwarded_for"';##访问日志位置#access_Log logs/access.log main;#支持文件发送(下载) sendfile    on;##此选项允许或禁止使用socket的TCP_CORK的选项( 发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用#tcp_nopush        on;##连接保持超时时间,单位是秒#keepalive_timeout  0;keepalive.timeout  65;##gzip模块设置,设置是否开启gzip压缩输出#gzip   on; #Web服务的监听配置##Web服务的监听配置server (##监听地址及端口listen 80;##站点域名,可以有多个,用空格隔开server.name www.gt0604.com;##网页的默认字符集charset utf-8;##根目录配置location / {##网站根目录的位置/usr/local/nginx/htmlroot html;##默认首页文件名index index.html index.php;}##内部错误的反馈页而error_page 500 502 503 504 /50x.html;#错误页而配置location = /50x.html {root html;}}
}

在这里插入图片描述

在这里插入图片描述

5.1 测试

在这里插入图片描述
在这里插入图片描述

6.日志格式设定

$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地址和原来客户端的请求的服务器地址。##location常见配置指令,root、alias、proxy_passlocation常见配置指令,root、alias、proxy_passroot(根路径配置):请求www.gt0604.com/hello,会返回文件/usr/local/nginx/html/test/index.htmlalias(别名配置):请求www.gt0604.com/hello,会返回文件/usr/local/nginx/html/index.html

在这里插入图片描述
在这里插入图片描述

7. 访问状态统计

7.1 查看是否有HTTP_STUB_STATUS模块

nginx -t

7.2 进入nginx主配置文件并添加stub_status

cd /usr/local/nginx/conf
cp nginx.conf{,.bak}
vim /usr/local/nginx/conf/nginx.conf
.....
http {
.....server {listen 80;server_name www.gt0604.com;charset utf-8;location / {root html;index index.html index.html;}##添加stub_status 配置##location /status {      #访问位置为/statusstub_status on;       #打开状态统计功能access_log off;       #关闭此位置的日志记录}}
}

8.Nginx访问控制

8.1 基于授权的访问控制

生成用户密码认证文件
也可通过在线生成

yum install -y httpd-toolshtpasswd -c /usr/local/nginx/passwd.db bb

8.2 如果删除了普通用户的权限就需要设置文件的属主

chown nginx /usr/local/nginx/passwd.db
chmod 700 /usr/local/nginx/passwd.db

8.3 修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf
......server {location / {......##添加认证配置##auth_basic "secret" ;auth_basic_user_file /usr/local/nginx/passwd.db;}}

8.4 基于客户端的访问控制

访问控制规则如下
deny IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问
allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配

vim /usr/local/nginx/conf/nginx.confserver {location / {#添加控制规则#192.168.1.1#192.168.1.0/24deny 192.168.0.10;#拒绝访问的客户端IPallow all;#允许其它IP客户端访问}}systemctl restart nginx

9.Nginx虚拟主机

9.1 基于域名的虚拟主机

echo "192.168.148.10 www.gt.com www.ggtt.com" >> /etc/hosts

9.2 为虚拟主机准备网页文档

mkdir -p /var/www/html/accp
mkdir -p /var/www/html/benet
echo "<h1>www.gt.com</h1>" > /var/www/html/gt/index.html
echo "<h1>www.ggtt.com</h1>" > /var/www/html/ggtt/index.html

9.3 修改Nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf
http {server {listen 80;server_name www.ggtt.com;charset utf-8;access_log logs/www.ggtt.com.access.log;location / {root /var/www/html/ggtt;index index.html index.html;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 80;server_name www.gt.com;charset utf-8;access_log logs/www.gt.access.com.log;location / {root /var/www/html/gt;index index.html index.html;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}
}
nginx -t
systemctl restart nginx

9.4 基于IP的虚拟主机

ifconfig ens33:0 192.168.148.20/24
vim /usr/local/nginx/conf/nginx.conf
http {server {listen 192.168.148.10:80;server_name www.gt.com;charset utf-8;access_log logs/www.gt.access.log;location / {root /var/www/html/gt;index index.html index.php;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}server {listen 192.168.148.20:80;server_name www.ggtt.com;charset utf-8;access_log logs/www.ggtt.access.log;location / {root /var/www/html/ggtt;index index.html index.html;}error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}
}
nginx -t
systemctl restart nginx

9.5 基于端口的虚拟主机

vim /usr/local/nginx/conf/nginx.conf
http {server {listen 192.168.148.10:233;server_name www.ggtt.com;charset utf-8;access_log logs/www.ggtt.access.log;location / {root /var/www/html/ggtt;index index.html index.html;}error_page 500 502. 503 504 /50x.html;location = 50x.html{root html;}}server {listen 192.168.148.10:8080;server_name www.gt.com;charset utf-8;access_log logs/www.gt.access.log;location / {root /var/www/html/gt;index index.html index.php; }error_page 500 502 503 504 /50x.html;location = 50x.html{root html;}}
}
nginx -t
systemctl restart nginx.service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_818910.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐几个好玩又有难度的编程网站

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;推荐几个好玩又有难度的编程网站作者&#x…

Red Hat推出”MugShot”社交娱乐网站

网址: http://mugshot.org/Red Hat近来推出”MugShot”网站, MugShot是一个致力于在线社交娱乐的开源项目. 它提供了更方便的网页和音乐分享. 当前MugShot处于测试阶段, 只提供邀请帐号. 你可以从这里申请. 更多信息见常见问题和开发主页.欢迎任何问题和建议.

Google 联合一些社交网站来对抗 facebook

谷歌(Google) 将与其它一些行业领先的社交网站联手&#xff0c;共同对抗互联网新贵Facebook。  谷歌将于周四推出一个通用标准集 ( OpenSocial )&#xff0c;允许软件开发者为谷歌旗下社交网站Orkut&#xff0c;以及LinkedIn、hi5、Friendster、Plaxo和Ning等其它社交网站开…

我在建站过程中的一点心得体会

原创文章请认准&#xff1a;主网站  微笑涛声     作者其他平台&#xff1a; CSDN    简书    开源中国    思否 所有的努力&#xff0c;不是为了让别人觉得你了不起&#xff0c;而是为了能让自己打心里看得起自己&#xff0c;人生的奔跑&#xff0c;不在于瞬…

SEO优化:Sitemap插件生成WordPress网站地图

▣ 前言 什么是sitemap网站地图&#xff1f;wordpress如何自动生成sitemap地图文件呢&#xff1f; 对于网站建设来说&#xff0c;网站地图是非常关键的&#xff0c;因为这对搜索引擎收录是很有利的。网上有很多方法介绍sitemap网站地图的制作。大体分为两种&#xff0c;一种是自…

建站分享:调整WordPress自带标签云参数

▣ 博主主站地址&#xff1a;微笑涛声 【www.cztcms.cn】 ▣ 博主其他平台&#xff1a; CSDN 简书 开源中国 思否 华为云博客 WordPress 自带的标签云是一个很实用的小工具。站长可以通过标签对具有相同关健词的文章进行检索分类,利于访客查找相关文章。 WordPress标签默认显…

建站分享:WordPress自定义网站背景图片

▣ 博主主站地址&#xff1a;微笑涛声 【www.cztcms.cn】 ▣ 博主其他平台&#xff1a; CSDN 简书 开源中国 思否 华为云博客 我的博客从上线到现在&#xff0c;网站背景一直是纯色的。突然想把背景改为图片。好在WordPress自定义背景图片比价简单。 1、找到正在使用的主题的…

建站分享:Gitee+PicGo 搭建Markdown图床

图床是干什么的&#xff1f; 图床就是一个便于在博文中插入在线图片连接的个人图片仓库。设置图床之后&#xff0c;在自己博客中插入的图片链接就可以随时随地在线预览了&#xff0c;并且不会因为任何意外原因无法查看&#xff0c;除非自己亲自删除。 ▣ 博主主站地址&#xff…

分享我的第一个Web作品——纯静态网站

以下是一年前学习Web基础开发时候的期末作品——计算机学习网。当时刚开始学习HTML和CSS。 网站采用HTMLCSSJavaScript的架构设计&#xff0c;当时大概用了12天左右&#xff0c;当然这12天还在上其他的课&#xff0c;这是利用课余时间做的。网站包括主页、内容页、登录和注册页…

网站添加免费SSL证书——HTTPS协议

在添加证书之前首先了解两个概念&#xff1a;SSL和HTTPS。 ▶ SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security&#xff0c;TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。 ▶ …

WordPress添加侧栏小工具-博客统计(网站统计)

WordPress侧边栏“博客统计”小工具的制作方法。首先要下载cztcms.zip文件&#xff0c;解压得到一个PHP文件。蓝奏云地址&#xff1a;▶ cztcms.zip 1、将这个PHP文件放到主题目录下。打开主题目录下的function.php&#xff0c;在最后一个 ?> 前插入以下代码&#xff1a; i…

PHP+MySQL实现精确统计网站访问量(IP个数)

基于WordPress的网站有很多统计功能。但是只能统计文章阅读数。不能统计访客人数。以下代码可以实现获取来访用户的IP地址&#xff0c;一个IP对应一次访问。即使刷新也不会增加访问量。这个非常精确。 1、创建一个存储数据的表。进入MySQL后直接创建即可。 create table wp_jc_…

gatsby_Gatsby更快的WordPress网站

gatsbyTalk about the latest cutting-edge web technologies, and you find some impressive names like React.js, Vue.js, Next.js, and so on. They have opened new gateways and approaches to building websites that can serve content to users quickly. 谈论最新的前…

从“奥运门票网站800万访问量”想到的成本、质量、进度、风险等关系

看到这个新闻后颇有一番滋味&#xff0c;更体验到我一直关注的软件性能着实无处不在&#xff0c;这个案例也确实值得我们好好反思一下。不知道网友们有没有报名参加国际日语考试的——这个网站每年05年前都有人不能报名&#xff0c;因为报名人数太多&#xff0c;所以报名当日大…

Web2.0网站的路径依赖--探讨蚂蚁社区为什么要导入博客

郑昀 2007-5-13以下文章即将讨论的问题涉及这几个关键词&#xff1a;l 网站启动的核心用户从哪里来&#xff1f;l 网站启动时需要什么样的种子用户&#xff1f;l 最初吸引来的种子用户对网站有什么路径依赖作用&#xff1f;麦田曾经问道&#xff1a;“4. …

郑昀邀请网站开发工程师架构师加盟Web3.0新锐网站[工作地点-北京财智国际大厦]

公司新年新气象&#xff0c;刚刚换到了一个大办公室&#xff0c;也离中关村更近了。随着公司规模的扩大&#xff0c;开始了新一轮的招兵买马&#xff0c;哈哈。请各位帮忙看看有没有合适的人选推荐&#xff0c;不胜感谢&#xff01;招聘:研发部招聘岗位1&#xff1a;PHP网站架构…

大型网站架构与分布式架构

解决问题的通用思路是将分而治之&#xff08;divide-and-conquer&#xff09;&#xff0c;将大问题分为若干个小问题&#xff0c;各个击破。在大型互联网的架构实践中&#xff0c;无一不体现这种思想。架构目标低成本:任何公司存在的价值都是为了获取商业利益。在可能的情况下&…

高性能网站性能优化

从LiveJournal后台发展看大规模网站性能优化方法于敦德 2006-3-16一、LiveJournal发展历程LiveJournal是99年始于校园中的项目&#xff0c;几个人出于爱好做了这样一个应用&#xff0c;以实现以下功能&#xff1a;博客&#xff0c;论坛 社会性网络&#xff0c;找到朋友 聚合&am…

JS实现网站悬浮广告

如图黄色区块会沿着浏览器的上下左右碰撞移动,可关闭,鼠标移上去会停止 <!doctype html> <html> <he><meta charset"utf-8"><title>广告</title><style type"text/css">*{pding:0px;margin:0px;}#ad{position:a…

一步一步SharePoint 2007之十七:解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...

一步一步SharePoint 2007之十七&#xff1a;解决实现Form认证后无法再用SharePoint Designer编辑网站的问题摘要前面的文章中&#xff0c;我曾提到&#xff0c;Form认证目前还有缺陷&#xff0c;就是实现Form认证后&#xff0c;就不可以用SharePoint Designer编辑网站了。这点真…