nginx搭建静态网站

news/2024/5/9 18:44:02/文章来源:https://blog.csdn.net/weixin_34072458/article/details/94214055

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务,常用于负载均衡构架,以提高网站的并发量,概念不过多介绍,更多细节请自行百度,

本文是纯操作案例,假设你已经知道什么是nginx并且知道它用来干什么,那么你可以按照本文步骤来使用nginx搭建出一个静态网站

以此你可以对nginx有一个直观的认识

 

一 安装nginx

1.添加nginx仓库

​x
1.1创建仓库文件
touch /etc/yum.repos.d/nginx.repo
1.2创建仓库信息
vim nginx.repo 
# 键入一下内容 设置仓库信息==================================================
# 稳定版
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
# 主力版
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key

2.开始安装

上述提供了两个不同版本

直接执行 yum install nginx 将安装稳定版 stable

xxxxxxxxxx
yum install nginx -y

如果要安装 主力版本相关的包可用将主力版的enable设置为1

xxxxxxxxxx
# 主力版
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

错误解决

如果安装过中出现Cannot find a valid baseurl for repo: base/7/x86_64 错误

我们需要添加新的DNS服务器地址

xxxxxxxxxx
echo "nameserver 114.114.114.114" >> /etc/resolv.conf

然后重新执行安装命令即可

其他系统参考

https://nginx.org/en/linux_packages.html

 

3.启动ngxin

xxxxxxxxxx
# 启动
nginx
# 查询进程是否启动
ps -aux|grep nginx
# 更近一步  尝试本地访问
wget 127.0.0.1:80
#2019-06-19 16:49:01 (31.8 MB/s) - 已保存 “index.html.1” [612/612])
# 显示文件以保存则表明nginx启动成功

4.主机访问

直接使用浏览器访问主机ip如果看到欢迎界面则启动成功

image-20190619165032611

 

开放端口

若访问失败则说明防火墙启动且没有开放相应的端口

xxxxxxxxxx
1.开放端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
2.使规则生效
firewall-cmd --reload

再次通过浏览器应该可以访问了!

 

 

 

防火墙设置

CentOS系统在初始状态下是打开了防火墙的并且不允许任何流量的出入,当然 22端口的基础端口是开放的

这就需要我们自己来开启需要的端口,nginx需要代理HTTP/HTTPS请求 所以我们需要开放相应端口

开启与关闭

xxxxxxxxxx
1. 停止
systemctl stop firewalld.service 
2. 启动
systemctl start firewalld.service 
3. 重启
systemctl restart firewalld.service
4. 查看状态: 
systemctl status firewalld 
5.禁止firewall开机启动
systemctl disable firewalld
6. 设置开机启用防火墙:
systemctl enable firewalld.service

查看状态与规则

xxxxxxxxxx
1. 查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state              
2. 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)
firewall-cmd --list-all           
3. 查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones     
4. 重新加载配置文件
firewall-cmd --reload             

添加与删除规则

xxxxxxxxxx
1. 添加(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
2. 重新载入(修改规则后使其生效)
firewall-cmd --reload
3. 查看
firewall-cmd --zone=public --query-port=80/tcp
4. 删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent

 

二 基础命令

启动与关闭命令

xxxxxxxxxx
查看nginx目录结构
rpm -ql nginx
启动
nginx
停止
nginx -s stop
重启
nginx -s reload  # 平滑重启
方式二:
systemctl start nginx
systemctl stop nginx
systemctl restart nginx # 直接重启
# 平滑重启服务  会先将当前任务处理完毕在重启
systemctl reload nginx
注意:两种方式不能混合使用
强制结束
pkill nginx

三 配置文件解析

xxxxxxxxxx
#核心模块配置
user www; #nginx进程使用的用户
worker_processes 1; #nginx运行的worker进程数量(建议与CPU数量一致或auto)
err_log /log/nginx/error.log#错误日志存放目录
pid        /var/run/nginx.pid;#nginx进程的ip
#事件模块配置
events {
    worker_connections  1024; #一个worker最大的链接数量
  use epool;#使用的网络模型为epool 默认
}
# http模块配置
http {
    include       /etc/nginx/mime.types;  #文件后缀与 响应数据类型  的映射表
    default_type  application/octet-stream; #当后缀找不到映射时 使用的默认类型  stream即文件下载
# 指定日志输出格式  $表示取nginx内部变量
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
# 指定日志路径 并指定需要使用的格式为main
    access_log  /var/log/nginx/access.log  main;
    sendfile        on; # 启用高效文件传输 nginx内部提供的方法
    #tcp_nopush     on;
    keepalive_timeout  65; #会话超时时间
    #gzip  on;#是否开启压缩功能
    include /etc/nginx/conf.d/*.conf; # 包含其他位置的配置文件 (server)
}

server配置

xxxxxxxxxx
# server配置项位于http之内 之所以分开是为了 方便管理
server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;  指定编码方式
    #access_log  /var/log/nginx/host.access.log  main;  #单独指定该服务的日志路径
  # 转发路径
    location / {                       # 10.0.0.11  == http://10.0.0.11:80/   /表示跟
        root   /usr/share/nginx/html;  # 访问路径为/时 到/usr/share/nginx/html;下找文件 
       # /将被替换为 root 后的路径
        index  index.html index.htm;   # 默认的主页文件 
      # 该配置表示当访问了地址为10.0.0.11时将返回
                                       # /usr/share/nginx/html/index.html 或/ htm文件
    }
    #error_page  404              /404.html; # 遇到404时要返回的页面
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html; # 当遇到5xx服务器错误时 返回
    location = /50x.html { #/usr/share/nginx/html/50x.html
        root   /usr/share/nginx/html;     
    }
  
  # 一个server中可以包含多个location配置项
}

 

四 nginx 部署静态网站案例:

xxxxxxxxxx
1.保持主配置文件为默认内容
2.创建自己的server配置文件
vim /etc/nginx/conf.d/game.conf
# 内容:
server{
listen 80;  #监听的端口
server_name game.oldboy.com; #监听的域名 
 
location / {
root /game/html; #网站所在路径
index index.html; #默认的首页文件
}
}
3.根据配置创建网站目录
mkdir /game/html
4.上传文件
在客户机执行命令
scp /Volumes/yh/linux备课视频/day31-老男孩教育3期-nginx基础/html5.zip  root@10.0.0.11:/game/
输入密码
5.解压文件
unzip /game/html5.zip -d /game/html/
6.将网站目录移交给nginx 用户
用于ngin会启动worker进程来执行任务,所以必须使得woker进程拥有目录的访问和执行权限 
chown nginx.nginx -R /game/
7.重启nginx 
systemctl reload ginx
9.由于我们是局域网环境无法直接使用域名来访问,所以我们需要自己来添加域名解析映射
mac 修改方式:
sudo vim /etc/hosts
在最后追加内容:
10.0.0.11    game.oldboy.com
windows 修改方式:
文件位于:C:\Windows\System32\drivers\etc\hosts
打开在最后加入 10.0.0.11    game.oldboy.com
如果无法保存 可以在桌面创建hosts修改后覆盖到原位置
 
10.通过浏览器访问game.oldboy.com 一切顺利的话将看到一下内容:

image-20190619230017732

 

 

 

 

 

转载于:https://www.cnblogs.com/yangyuanhu/p/11055670.html

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

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

相关文章

国外10个最佳和最流行的酷站推荐网站

The FWA The FWA这个网站,相信不必多介绍了,这是许多国外Flash设计师梦寐以求的奖项的 优胜者通常通过显示The FWA徽章作为他们网站获奖的一个标志。 Best Web Gallery 访问Best Web Gallery您可能很长时间发现有没有更新,因为这个网站关注的…

Python | 7招教你识别一个网站是否是Django后台

目录:1. 利用Debug模式异常页面判断2. 通过CSRF Token验证3. Django Admin4. 通过HTTP头5. 拼凑细节6. 通过一些第三方模块的特点判断7. 分析静态文件最近事情有点多,一直没有时间写原创,而又一直想写点什么,今天早上正好空下来&a…

整理了一周的Python资料,包含各阶段所需网站、项目,收藏了慢慢来

这周应该有不少学校已经开学了,那么同学们都该动起来了,把家里面的那些懒习惯给扔掉了可以。 不知怎么的,最近不少关注我的读者都开始私信我怎么学好python?零基础转行是不是合适,还有希望吗?今年30了&…

【Git】GIT相关网站

GIT CHEAT SHEET 最后可以戳以下链接继续学习: https://git-scm.com/book/zh/v2 Git中文开发手册

要想知道自己在网上裸奔成啥样?这个网站一搜便知

很多网站都需要手机号注册,久而久之自己也不清楚注册了哪些网站。 有的网站可能注册过一次就再没用过,有的明明没有注册过但还是收到很多垃圾信息,可能是因为你手机号之前被别人用的时候,注册了你不知道的网站。 下面&#xff0…

你要的Python资料都在这里,包含各阶段所需学习网站、实战项目,收藏了慢慢来

不知怎么的,最近不少关注我的读者都开始私信我怎么学好python?零基础转行是不是合适,还有希望吗?今年30了,还能不能转IT? 其实关于零基础转型的,我以前写过一篇文章,没有看过的都可…

第 2 部分: SEO 关键词和基础设施策略

从左上角向下的关键词优化策略 只需两步,即可在关键词策略战役中取得成功: 关键词选择:判断页面提供了什么内容。然后判断潜在受众可能使用哪些词来搜索您的页面,并根据这些词创建关键词。 关键词优化:将这些关键词应用…

想做一个显示全国火车运行图的网站(5)误操作

误操作,想把火车站基本信息和wiki信息分到两张表中,在复制坐标列时忘记把数据也导过来就删除了源表的列,丢了所有的地标数据。 找备份,本来有一个作业是三天备份一次数据库的,但是今天一看,忘记在Sql Serve…

让 officelive.com 免费建站 注册支持cn域名

试用了一下微软的 http://www.officelive.com/free-website 免费建站,可以支持邮箱和域名转入,默认不支持 .cn域名 在地址栏输入就可以了 Codejavascript:void((document.getElementById("SG_4:redelTldSelect").getElementsByTagName("O…

jQuery css3仿游戏网站右键环形菜单

效果展示 http://hovertree.com/texiao/jquery/86/PC用户右键弹出环形菜单。手机用户扫描二维码:长安可以弹出环形菜单。 转自:http://hovertree.com/h/bjaf/aht9w1n8.htm web前端特效:http://www.cnblogs.com/jihua/p/webfront.html

美食网站响应式精美模板

本模板为自适应宽度模板,可兼容PC,手机等多种环境,适应不同屏幕大小宽度。预览图片:进入下载页:http://hovertree.com/h/bjaf/bnbpkr9p.htm效果预览http://hovertree.com/texiao/muban/1/ 转自:http://hov…

转:通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

中文页面: http://blog.163.com/chuan_zheng/blog/static/856478720074155351773/英文原文: http://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/default.aspx示例源码页:http://msdn.microsoft.com/msdnmag/issues/06/07/WebAppFollies/def…

上海新东方vs新东方,SEO实战

阿里妈妈提供广告非常郑重地声明一下(文章发表约20小时后补充) 我不得不承认,这篇文章有点“软”,但是请相信,这篇文章绝对不是为了软而软的。文章的来源是这样的。因为工作需要,所以分析了一下h公司的SEO方…

推荐8款优秀的餐饮网站模板

这篇文章收集了8款优秀的餐饮网站模板,希望这些网站模板能帮助到您。当你想快速制作出一个网站的时候,网站模板就非常有用了。学习网页设计的朋友也可以从网站模板入手,学习模板网站的布局方式和编码风格。 Delicious Restaurant WordPress T…

[导入]你的网站被人订阅了吗?(浅谈Rss2.0)

摘要: RSS作为Web2.0中的一项新技术,被广泛的应用于各类网站中,其实Rss技术很简单,给自己的网站做一个RSS源那就更简单啦。 本文旨在是通过一个非常简单的实例,来介绍一下给自己的网站创建一个RSS源以及如何读取网站的&#xff32…

JSP网站开发基础总结《十一》

继上一篇关于过滤器连总结后,本篇为大家详细介绍一下过滤器中过滤规则的dispatcher属性的使用,在servlet2.5中dispatcher的属性有四种,其中上一篇已经为大家介绍了error属性的使用,本篇将详细介绍一下剩余的三个属性的作用。 1、s…

JSP网站开发基础总结《六》

对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容。 1、添加数据到数据库: 如何用户在JSP页面…

JSP网站开发基础总结《一》

经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法、应用程序、网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结。 既然是动态网站开发,那它与传统的静态网站有什么区别呢&#xf…

支付宝网页服务器出错500,YunCart电商网站支付宝接口出现500错误

yuncart 是一套易与集成的php开源商城系统,方便多人同时经行二次开发,Yuncart 可以以非常方便的方式切换到sql server,oracle等数据库,大小1.9MB,感兴趣的朋友,可以去官网下载。最近帮朋友用php做了一个电商网站&#…

使用Express开发个人网站(一)

Express,基于Node.js平台,快速、开放、极简的 web 开发框架。 Node的出现,让js有了运行在服务器端的可能,基于此的Express,可以快速,简单的搭建起一个服务器与个人网站。 安装 首先安装nodejs,…