Nginx网站服务——关于nginx系统安装、访问状态统计、访问控制、虚拟主机设置

news/2024/5/17 13:16:51/文章来源:https://blog.csdn.net/cenjeal/article/details/108555969

Nginx网站服务

  • 一 nginx服务基础
    • 1.1 nginx概述
    • 1.2 nginx安装步骤
    • 1.3 nginx优化
    • 1.4 访问状态统计
  • 二 Nginx访问控制
    • 2.1 基于授权的访问控制
    • 2.2 基于客户端的访问控制
  • 三 nginx虚拟主机
    • 3.1 基于域名的虚拟主机
    • 3.2 基于IP的虚拟主机
    • 3.3 基于端口的虚拟web主机

一 nginx服务基础

1.1 nginx概述

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

优点

在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

1.2 nginx安装步骤

先关闭和禁用防火墙

systemctl stop firewalld
systemctl disabled firewalld

把nginx软件包拷贝到/opt目录下
在这里插入图片描述
解压并安装nginx

cd /opt
tar xzvf nginx-1.15.9.tar.gz 
useradd -M -s /bin/nologin nginx			#创建运行用户、组

安装支持软件、编译安装

yum -y install gcc gcc-c++  make pcre-devel zlib-devel
cd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module		#开启stub_status状态统计模块
make && make install

1.3 nginx优化

路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx 

启动、重新配置、停止nginx

nginx  ## 启动 Nginx
netstat -anpt |grep nginx ## 过滤Nginx的进程
yum -y install psmisc        ###最小安装没有killall令需要安装 
killall -s HUP nginx  ## 重载Nginx配置文件(相当于刷新)
killall -s QUIT nginx  ## 退出 Nginx

添加系统服务
方法一:

vi /lib/systemd/system/nginx.service
编辑模式
[Unit]
Description=nginx   ###描述
After=network.target    ####描述服务类别
[Service]
Type=forking    ###后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid   #PID文件位置  
ExecStart=/usr/local/nginx/sbin/nginx    #启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID  #根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID  #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target		#最小安装方式适用
:wq保存退出
chmod 754 /lib/systemd/system/nginx.service 
systemctl enable nginx.service 
systemctl start nginx

方法二

[root@localhost ~]# cd /etc/inid.d		#添加使用service工具进行管理
[root@localhost init.d]# ls
[root@localhost init.d]# vim nginx
#!/bin/bash
# chkconfig: - 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1
esac
exit 0
[root@localhost init.d]# chmod +x nginx
[root@localhost init.d]# chkconfig --add nginx
[root@localhost init.d]# chkconfig --level 35 nginx on

此时,在防火墙关闭且nginx服务打开后成功访问
在这里插入图片描述

1.4 访问状态统计

启用HTTP_ STUB_ STATUS状态统计模块
配置编译参数时参加–with-http_stub_status_module
nginx -V 查看已安装的Nginx是否包含HTTP_STUB_STATUS模块
在这里插入图片描述

修改/usr/local/nginx/conf/nginx.conf配置文件

vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {root    html;index  index.html   index.htm;
}
添加如下内容
location /status {stub_status on;access_log off;
}
:wq保存退出
systemctl restart nginx

在这里插入图片描述
Active connections 表示当前的活动连接数
server accepts handled requests 表示已经处理的连接信息
1 1 1表示 :
已处理的连接数1、成功的TCP握手次数1、已处理的请求数1

二 Nginx访问控制

2.1 基于授权的访问控制

yum -y install httpd-tools
创建用户test并设置密码
htpasswd -c /usr/local/nginx/passwd.db test
New password: 
Re-type new password:
查看密码(已加密)
cat /usr/local/nginx/passwd.db修改文件权限为只读chmod 400 /usr/local/nginx/passwd.db将所有者修改为 nginx ,设置nginx的运行用户能够读取chown nginx /usr/local/nginx/passwd.db
ll -d /usr/local/nginx/passwd.db修改主配置文件nginx.conf,对相应目录添加认证配置项vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {root    html;index  index.html   index.htm;#添加如下两行auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;
}
[root@localhost ~]# nginx -t  #检测语法
[root@localhost ~]# systemctl restart nginx

在这里插入图片描述
输入用户名和密码成功登录
在这里插入图片描述

2.2 基于客户端的访问控制

配置规则

deny IP/IP段:拒绝某个IP或IP段的客户端访问

allow IP/IP段:允许某个IP或IP段的客户端访问

规则从上往下执行,如匹配则停止,不再往下匹配

注意
deny和allow都是仅拒绝/允许的关系

配置步骤
修改主配置文件nginx.conf,添加相应配置项,除主机20.0.0.1之外允许其他客户端访问
vi /usr/local/nginx/conf/nginx.conf
编辑模式
location / {root    html;index  index.html   index.htm;auth_basic "secret";auth_basic_user_file /usr/local/nginx/passwd.db;deny 20.0.0.1;allow all;
}
[root@localhost ~]# systemctl restart nginx

三 nginx虚拟主机

利用虚拟主机,不需要为每个运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,虚拟主机提供了在同一台服务器,同一组 Nginx进程上运行多个网站的功能。

3.1 基于域名的虚拟主机

1.修改Windows客户机的C:\Windows\System32\drivers\etc/hosts文件
20.0.0.11	www.61ser.top	www.51ser.top
2.准备各个网站的目录和测试首页
mkdir -p /var/www/html/61ser/
mkdir -p /var/www/html/51ser/
echo "www.61ser.top" >> /var/www/html/61ser/index.html
echo "www.51ser.top" >> /var/www/html/51ser/index.html
3.修改配置文件,把配置文件中的server{}代码段全部去掉,加入2个新的server{}段,对应2个域名
vi /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.61ser.top;
charset utf-8;
access_log logs/www.61ser.top.access.log;
location / {root /var/www/html/61ser;index index.html index.htm;}
error_page 500 502 503 504 /50x.html;
location = 50x.html{root html;}
}
server {
listen 80;
server_name www.51ser.top;
charset utf-8;
access_log logs/www.51ser.top.access.log;
location / {root /var/www/html/51ser;index index.html index.htm;}
error_page 500 502 503 504 /50x.html;
location = 50x.html{root html;}
}
systemctl restart nginx
测试
www.61ser.top
www.51ser.top

3.2 基于IP的虚拟主机

添加虚拟网卡
修改UUID
修改IP地址:192.168.100.11
修改网关:192.168.100.1

添加网卡的具体操作参见该篇博客:传送门:Linux网卡基本设置及网络测试常用命令

主机配置两个IP地址
vim /usr/local/nginx/conf/nginx.conf
server {listen    20.0.0.11:80;server_name 20.0.0.11:80;
}
server {listen    192.168.100.11:80;server_name 192.168.100.11:80;
}
[root@localhost ~]# systemctl restart nginx

3.3 基于端口的虚拟web主机

vim /usr/local/nginx/conf/nginx.conf
server {listen    20.0.0.11:666;server_name 20.0.0.11:666;
}
server {listen    20.0.0.11:888;server_name 20.0.0.11:888;
}
[root@localhost ~]# systemctl restart nginx

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

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

相关文章

助程序员快速成长 荐10大在线编程网站

在过去的几年里,在互联网上出现了许多为开发人员提供的在线编程网站(Coding playgrounds)。这不是一件坏事情,毕竟,如果一个编程网站的话,开发者们迟早会腻的。在这些网站上,你在网页上编写代码…

网站设计

1、MaterialPalette 生成并导出MaterialDesign配色模板 http://www.materialpalette.com/ 2、NewFlatUI Color Picker 扁平化UI设计配色方案 http://www.flatuicolorpicker.com/ 3、FlatUI Colors 漂亮的扁平化配色 http://flatuicolors.com/ 4、Coolors 超级快的配色方案生成工…

网站入侵工具之wscan使用详解

网站入侵工具之wscan使用详解 by:南非教主 wscan是个比较强大的网站扫描工具,当然还有些其它强大的工具,不过我只用过wscan。以下是wcan的说明文件内容: ---------------------------------------------------------------------------------…

这9个免费可商用图片素材下载网站,凭什么得到知乎10万+用户推荐!!!

大声BB 图片配的好,下班跑得早。近些年来国内沸沸扬扬的图片侵权事件让不少自媒体人在配图上可犯难了,看到视觉中国、华盖的图片,赶紧绕道而行。对于在网上冲浪的人来说,视觉中国真的没什么,想找免费可商用的图片&…

IIS——搭建网站问题小结

1、配置IIS,打开—控制面板\所有控制面板项\程序和功能,打开左上角“打开或关闭Windows功能”勾选一些功能如下图,我的电脑安装的是WIN7企业版,如果安装的是WIN7家庭版是没有这些功能的哦 点击确认,在控制面板——管理…

jmeter模拟对网站做压力测试

一般的网站,在进入业务功能前先需登录,然后才能访问业务功能。基本框架如下 详细步骤: 1 .用badboy录制登录,访问随意一个网址。 2.用jmeter打开,一会自己写的时候可以参考里面的参数名称或路径什么的。如果对http熟…

wireshark抓包分析--测试网站登录

wireshark抓包网站登录功能,测试用户名密码信息是否安全。如果在抓包的数据中能看到密码等明文信息,就不安全,看不到,就安全。 1.查找本机ip cmd--ipconfig--得到ip地址为:10.10.140.179 2.查找网站上点击登录后提…

0019 python django 08 django3.0 视图 urls.py 一个网站服务 处理 响应 过程

以下为学习笔记,用来备忘、交流 工具:树莓派 3B / Raspberry Pi 3B 系统:带桌面的Raspbian Buster 基于Debian-Buster的桌面图像 Raspbian Buster with desktop Image with desktop based on Debian Buster Release date:2019-09-26 Python …

IIS 在MVC网站下创建多个子应用程序,根目录问题

在iis中单独发布网站 在之前的网站下,部署子网站即应用程序 遇到的问题是:在单独发布的网站用ajax请求后台是正常的,但作为应用程序发布,发现请求后台无反应,按F12,错误提示404,后来通过日志输出的方式&am…

VS2015 利用msvsmon.exe远程调试IIS网站

在开发中,不知道大家有没有遇到这样的问题,在本地测试中没问题,一旦发布就出问题,因此,远程调试就显得很重要,到底是程序本身由bug,还是其它因素导致的。教程也是从网上找的,方法有效&#xff0…

vs调试网站出现“csc.exe”错误

问题:vs调试网站出现“csc.exe”错误 解决方法:关闭项目,找到网站的bin目录下的roslyn文件夹删除,再次打开项目重新生成

VS发布网站时,报错提示:“未能将文件xxx复制到xxx,未能找到文件xx”三种解决方案!

布网站时候大家可能会遇到这样的情况,就是报错提示说:“未能将文件xxx复制到xxx,未能找到文件xx”,这个问题一般来说有三种解决方案,个人倾向第三种,如图: 解决方案如下: 方案一、把…

使用Apache+mod_wsgi部署flask网站

文章目录 写在前面ubuntu16.041、配置2、二级域名设置3、github博客二级域名4、参考 centos71、安装配置Apache2、安装配置mod_wsgi3、部署flask 写在前面 本文使用Apachemod_wsgi部署简单的flask网站。 ubuntu16.04 设置二级域名访问flask网站。 1、配置 主要分为一下几个…

Django2.2+ubuntu16+python3.6架设“文学天地”个人网站

项目简介 项目是基于Django2.2ubuntu16(HuaWei cloud)python3.6开发的初学者博客网站项目网站上线使用Apache2 Web服务 (后续更新)此项目基本按照教材《Django架站的16堂课》所建,如需教材以及github源码链接可关注公众号【小灰啾】回复&quo…

国人当自强:两岸三地在线编程学习网站大搜罗

转载地址:http://www.csdn.net/article/2013-12-12/2817782-best-websites-to-learn-mobile-dev-in-china点击打开链接 摘要:在本文中,我们介绍了来自两岸三地的编程学习网站,通过它们,不仅可以一窥国内App开发的发展…

又是一个极佳的虚拟机网站

这次的虚拟机网站要比之前的pcjs还要好,因为这个网站更加稳定 看图: 不得不说,太像了 甚至连窗口都和真正的Windows98一模一样 打开记事本 还可以保存txt,步骤和Windows中的一样 绝了! 安装方法: 浏览器…

14款优秀的代码展示网站

本文列出的这些网站可以分享和展示你的代码。它们都提供在线预览功能,所以别人可以看到你的代码如何运行。它们有时候也被称作“代码广场”或者“沙箱”。 它们不仅仅提供简单的代码展示功能,还提供很多代码协作和实际编程过程会用到的功能。例如&#x…

8款插件使你的网站移动响应

下面是一些有用的插件,另一个伟大的收集。这一次,我们的重点是前8插件,使你的网站移动响应。插件来这里是为了加快工作流程,简单的工作流程,从而提高了生产力。这些天来,这是你的敏感的网站必须工作在台式机…

5款最好的免费在线网站CSS验证器

这里是一个名单, 5免费在线CSS验证器的网站。这些网站让你验证你的CSS代码的自由,没有任何麻烦。你可以选择上传文件,验证CSS添加URL,或简单的复制和粘贴完整的CSS代码。好的方面是,这些网站不仅指出了代码中的错误&am…

10款WordPress的插件让你的网站的移动体验

随着科技的不断发展,需要改变营销策略的一个企业就变得非常重要。你不能指望用你的营销工具来留住你的客户。智能手机和平板电脑已经改变了消费者的行为方式。现在,人们甚至不想去他们的电脑或笔记本电脑,以检查产品或服务,他们的…