当前位置: 首页 > news >正文

使用Nginx搭建Web服务

Nginx是一款开源的高性能HTTP和反向代理服务器,具有高并发处理能力和低资源消耗的特点

目录

Nginx服务

安装nginx服务

启动nginx服务

查看网络服务

使用curl访问web服务

配置基于主机名的Web服务

配置文件

显示文件

本地解析文件

重启Nginx服务并验证

配置基于IP地址的Web服务器

添加IP地址

配置文件

显示文件

重启Nginx服务并验证

配置基于端口的Web服务器

定义端口

配置文件

显示文件

重启Nginx服务并验证+查看网络服务是否开启

配置账号验证访问

安装软件httpd-tools

配置文件

本地解析文件

显示文件

创建账号

重启Nginx服务并验证

配置https加密服务

本地解析文件

显示文件

配置文件

生成钥匙和证书

重启Nginx服务并验证


Nginx服务

安装nginx服务

[root@Jian ~]# dnf install nginx -y

启动nginx服务

[root@Jian ~]# systemctl start nginx

查看网络服务

可以看到Nginx服务已经成功开启

[root@Jian ~]# ss -lntup | grep 80

[root@Jian ~]# netstat -lntup | grep 80

使用curl访问web服务

curl用于不同类型的网络协议之间进行数据传输,此处从命令行发送网络请求

[root@Jian ~]# curl Jian[root@Jian ~]# curl localhost

现在即可访问到相关网页,如果想要在Windows访问网页应该进行如下的步骤

[root@Jian ~]# systemctl stop firewalld         #关闭防火墙

通过浏览器搜索引擎输入自己的IP地址

认识两个配置文件目录

子配置文件目录    /etc/nginx/conf.d

主配置文件目录(不建议操作)    /etc/nginx/nginx.conf

配置基于主机名的Web服务

配置文件

进入子配置文件目录,在该目录里创建子配置文件haha.conf,文件命名可以随意取,后缀不能随意更改

[root@Jian ~]# cd /etc/nginx/conf.d[root@Jian conf.d]# vim haha.conf[root@Jian conf.d]# cat haha.confserver{server_name www.haha.com;root /usr/share/nginx/html/haha;}

显示文件

/usr/share/nginx/html/路径下还没有haha目录,接下来创建目录再写入对应的html文件

[root@Jian conf.d]# cd /usr/share/nginx/html[root@Jian html]# mkdir haha[root@Jian html]# vim haha/index.html[root@Jian html]# cat haha/index.htmlHello! Welcome to haha!

本地解析文件

修改本地解析文件(添加需要的主机名和指定对应IP地址)

​
[root@Jian html]# vim /etc/hosts[root@Jian html]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.72.135   www.haha.com

注意:书写自己主机的IP地址

重启Nginx服务并验证

输入访问命令后,反馈是显示文件里面对应书写的内容则表示进行的访问操作是成功的

[root@Jian html]# systemctl restart nginx[root@Jian html]# curl www.haha.comHello! Welcome to haha!                    #通过主机名成功访问

配置基于IP地址的Web服务器

添加IP地址

添加IP地址并应用,添加完成还可以进行验证,使用ping+IP地址,可以得出网络是否能通的反馈

[root@Jian ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.72.151/24[root@Jian ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.72.152/24[root@Jian ~]# nmcli connection up ens160Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@Jian ~]# ip ad

已经添加完成IP地址如下图所示的内容

配置文件

进入子配置文件目录,在该目录里创建子配置文件151.conf和152.conf,文件命名可以随意取,后缀不能随意更改

[root@Jian ~]# cd /etc/nginx/conf.d[root@Jian conf.d]# vim 151.conf[root@Jian conf.d]# cat 151.confserver{server_name 192.168.72.151;root /usr/share/nginx/html/151;}[root@Jian conf.d]# vim 152.conf[root@Jian conf.d]# cat 152.confserver{server_name 192.168.72.152;root /usr/share/nginx/html/152;}

显示文件

创建目录再写入对应的html文件

[root@Jian conf.d]# cd /usr/share/nginx/html[root@Jian html]# mkdir 151[root@Jian html]# mkdir 152[root@Jian html]# echo Welcome to 151 > 151/index.html[root@Jian html]# echo Welcome to 152 > 152/index.html

重启Nginx服务并验证

[root@Jian html]# systemctl restart nginx[root@Jian html]#[root@Jian html]# curl 192.168.72.151Welcome to 151[root@Jian html]# curl 192.168.72.152Welcome to 152

通过IP地址访问成功

配置基于端口的Web服务器

定义端口

默认端口:80   443  再提供9091和9092的端口

配置文件

进入子配置文件目录,在该目录里创建子配置文件9091.conf和9092.conf,文件命名可以随意取,后缀不能随意更改

[root@Jian ~]# cd /etc/nginx/conf.d[root@Jian conf.d]# vim 9091.conf[root@Jian conf.d]# cat 9091.confserver{listen 9091;root /usr/share/nginx/html/9091;}[root@Jian conf.d]# vim 9092.conf[root@Jian conf.d]# cat 9092.confserver{listen 9092;root /usr/share/nginx/html/9092;}

显示文件

创建目录再写入对应的html文件

[root@Jian conf.d]# cd /usr/share/nginx/html[root@Jian html]# mkdir 9091[root@Jian html]# mkdir 9092[root@Jian html]# echo Welcome to 9091 > 9091/index.html[root@Jian html]# echo Welcome to 9092 > 9092/index.html

重启Nginx服务并验证+查看网络服务是否开启

关闭SELinux(基于标签管理所有系统资源对象,端口也是对象)

原因:9091和9092端口没有标签,而80和443端口有标签

该操作为临时关闭,系统重启之后需要再次关闭才行

[root@Jian html]# setenforce 0[root@Jian html]# systemctl restart nginx

查看网络服务

[root@Jian html]# netstat -lntup | grep 9091(9092)

[root@Jian html]# curl 192.168.72.135:9091Welcome to 9091[root@Jian html]# curl 192.168.72.135:9092Welcome to 9092

通过端口访问成功

配置账号验证访问

安装软件httpd-tools

[root@Jian html]# dnf install httpd-tools -y

下载完成

获取的命令可以用于创建一个账号文件,输入一个密码给指定用户就可以添加完成

关闭防火墙和SELinux

[root@Jian ~]# systemctl stop firewalld[root@Jian ~]# setenforce 0

配置文件

进入子配置文件目录,在该目录里创建子配置文件user.conf,文件命名可以随意取,后缀不能随意更改

[root@Jian ~]# cd /etc/nginx/conf.d[root@Jian conf.d]# vim user.conf[root@Jian conf.d]# cat user.confserver{server_name www.user.com;root /usr/share/nginx/html/user;location /admin{index index.html;auth_basic "login password";auth_basic_user_file  /etc/nginx/conf.d/password;}error_log /var/log/nginx/user.log;}

本地解析文件

修改本地解析文件(添加需要的主机名和指定对应IP地址)

[root@Jian conf.d]# vim /etc/hosts[root@Jian conf.d]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.72.135   www.haha.com192.168.72.151   www.user.com

显示文件

创建目录再写入对应的html文件

[root@Jian conf.d]# cd /usr/share/nginx/html[root@Jian html]# mkdir user[root@Jian html]# mkdir user/admin[root@Jian html]# echo Public > user/index.html[root@Jian html]# echo Authenticate > user/admin/index.html

创建账号

切换到conf.d目录创建用户

[root@Jian html]# cd /etc/nginx/conf.d[root@Jian conf.d]# htpasswd -cb password zhangsan redhatAdding password for user zhangsan[root@Jian conf.d]# htpasswd -b password lisi redhatAdding password for user lisi[root@Jian conf.d]# cat passwordzhangsan:$apr1$5GOkwlXy$UMx0QGNk5.BW45.QhFdR41lisi:$apr1$Z1fOAN6Z$7nXvS5JTfoNr72XrgImIu0

有张三和李四两个用户

重启Nginx服务并验证

出现下面的反馈结果则表示实验完成

[root@Jian conf.d]# systemctl restart nginx[root@Jian conf.d]# curl www.user.comPublic[root@Jian conf.d]# curl http://zhangsan:redhat@www.user.com/admin/index.htmlAuthenticate[root@Jian conf.d]# curl http://lisi:redhat@www.user.com/admin/index.htmlAuthenticate

如果遇到问题就用systemctl status nginx命令进行错误提示查看

配置https加密服务

本地解析文件

修改本地解析文件(添加需要的主机名和指定对应IP地址)

[root@Jian ~]# vim /etc/hosts[root@Jian ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.72.135   www.haha.com192.168.72.151   www.user.com192.268.72.152   www.https.com

显示文件

创建目录再写入对应的html文件

[root@Jian ~]# cd /usr/share/nginx/html[root@Jian html]# mkdir https[root@Jian html]# echo https > https/index.html再创建一个目录放日志[root@Jian html]# mkdir /var/log/nginx/https

配置文件

进入子配置文件目录,在该目录里创建子配置文件https.conf,文件命名可以随意取,后缀不能随意更改

[root@Jian html]# cd /etc/nginx/conf.d[root@Jian conf.d]# vim https.conf[root@Jian conf.d]# cat https.confserver{listen 443 ssl;server_name www.https.com;root /usr/share/nginx/html/https;ssl_certificate /etc/pki/tls/certs/https.com.crt;ssl_certificate_key /etc/pki/tls/private/https.com.key;access_log /var/log/nginx/https/access.log;error_log /var/log/nginx/https/error.log;}

生成钥匙和证书

注意:在生成证书的时候,server's hostname不要填错

[root@Jian conf.d]# cd /etc/pki/tls/certs通过钥匙生成证书[root@Jian certs]# openssl genrsa > https.com.key[root@Jian certs]# openssl req -new -key https.com.key -x509 -days 100 -out https.com.crtYou are about to be asked to enter information that will be incorporatedinto your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [XX]:86State or Province Name (full name) []:ChongQingLocality Name (eg, city) [Default City]:BaNanOrganization Name (eg, company) [Default Company Ltd]:School  Organizational Unit Name (eg, section) []:RHCECommon Name (eg, your name or your server's hostname) []:www.https.comEmail Address []:admin@https.com

因为key路径写在private里面,所以现在需要移动它

[root@Jian certs]# mv https.com.key ../private/

重启Nginx服务并验证

[root@Jian certs]# systemctl restart nginx

正常访问的时候会显示有问题,这时需要忽略警告访问

忽略警告访问(生产环境不推荐

[root@Jian certs]# curl https://www.https.com -khttps

访问成功!

http://www.xdnf.cn/news/85681.html

相关文章:

  • 黑马商城(六)RabbitMQ
  • 使用达梦官方管理工具SQLark快速生成数据库ER图并导出
  • ProxySQL 在路由层的核心作用
  • 深入理解CSS中的`transform-origin`属性
  • day30 学习笔记
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第三模块·面向对象深度进化 —— 第十章 继承:超越C结构体嵌套的维度
  • 实时监测+远程管控:ADW300解锁阳台光伏运维新维度
  • 音视频学习 - MP3格式
  • 如何选择正确的PCB材料
  • 为什么家电主板采用GND走线而不是整面铺GND铜
  • [特殊字符]fsutil命令用法详解
  • Kotlin 的 suspend 关键字
  • 【文献分享】Model-based evaluation提供了数据和代码
  • synchronized锁
  • 为啥低速MCU单板辐射测试会有200M-1Ghz的辐射信号
  • ZYNQ笔记(十二):SD卡读写txt
  • 【Git】Fork和并请求
  • 《MySQL 核心技能:SQL 查询与数据库概述》
  • CentOS笔记本合上盖子不休眠
  • WeakSet:JavaScript 中容易被忽视的“弱集合”
  • 2025年4月22日第一轮
  • 本地部署DeepSeek-R1模型接入PyCharm
  • Java常用正则表达式及使用方法
  • 【屠龙勇士】BIT睿信书院屠龙勇士心得分享
  • Buffer of Thoughts: Thought-Augmented Reasoningwith Large Language Models
  • 第八天 AI开发:NavMesh导航系统 对话系统:使用ScriptableObject存储对话数据 存档系统:JSON序列化保存数据
  • 在Windows上安装Git
  • UDP协议理解
  • Linux 系统中使用 OpenSSL 生成适用于 IIS 的证书
  • L2-2、示范教学与角色扮演:激发模型“模仿力“与“人格“