论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
前端开发
›
【Web】Nginx:静态网站摆设
【Web】Nginx:静态网站摆设
曹旭辉
金牌会员
|
2024-11-17 04:47:26
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
965
|
帖子
965
|
积分
2895
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
Nginx 是一个HTTP和反向代理服务器,邮件代理服务器,以及一个通用的TCP/UDP代理服务器,最初由Igor Sysoev编写。很长一段时间以来,它一直在很多负载较重的俄罗斯网站上运行,包罗Yandex、Mail.Ru、VK和Rambler。根据Netcraft的数据,在2024年5月,nginx为或代理了20.42% 最繁忙的站点。以下是一些成功案例:Dropbox、Netflix、FastMail.FM
安装Nginx
起首,确保体系包是最新的:
#本文操作环境为Ubuntu
sudo apt update
sudo apt upgrade
复制代码
利用以下下令安装Nginx:
sudo apt install nginx
复制代码
安装完成后,启动Nginx并使其开机主动启动:
sudo systemctl start nginx
sudo systemctl enable nginx
# 禁止自启动:sudo systemctl disable nginx
复制代码
检察端口占用环境:
netstat -lntup # 可以看到nginx默认占用了80端口
复制代码
Nginx常用下令
启动Nginx:
进入Nginx的安装目录,并利用 ./nginx 启动Nginx:
cd /usr/local/nginx/sbin/
./nginx
复制代码
停止Nginx:
利用 -s stop 参数立刻停止Nginx:
./nginx -s stop
复制代码
安全退出Nginx:
利用 -s quit 参数安全退出Nginx,等候所有工作进程处置惩罚完当前请求后再退出:
./nginx -s quit
复制代码
重新加载设置文件:
利用 -s reload 参数重新加载Nginx设置文件而无需停止服务:
./nginx -s reload
复制代码
检察Nginx进程:
利用 ps 下令检察Nginx进程:
ps aux | grep nginx
复制代码
设置文件语法检查:
在应用新的设置文件之前,利用以下下令测试设置文件的语法:
./nginx -t
复制代码
检察Nginx版本:
检察Nginx的版本信息和编译设置:
./nginx -v
复制代码
检查Nginx的当前状态:
检查Nginx的当前状态和活动状态:
sudo systemctl status nginx
复制代码
启动、停止和重启Nginx(利用systemd):
假如Nginx是通过包管理器(如apt或yum)安装的,可以利用systemd管理服务:
# 启动Nginx
sudo systemctl start nginx
# 停止Nginx
sudo systemctl stop nginx
# 重启Nginx
sudo systemctl restart nginx
# 重新加载配置文件
sudo systemctl reload nginx
复制代码
创建网站目录和页面
起首,创建目录结构来存放你的网站文件:
sudo mkdir -p /var/www/my_website
sudo mkdir -p /var/www/my_website/about
sudo mkdir -p /var/www/my_website/contact
复制代码
然后创建首页、关于页面和联系页面的HTML文件:
sudo vi /var/www/my_website/index.html
复制代码
<!DOCTYPE html>
<html>
<head>
<title>My Personal Website</title>
</head>
<body>
<h1>Welcome to My Personal Website</h1>
<p>This is the home page.</p>
<nav>
<a href="/about/">About</a>
<a href="/contact/">Contact</a>
</nav>
</body>
</html>
复制代码
sudo vi /var/www/my_website/about/index.html
复制代码
<!DOCTYPE html>
<html>
<head>
<title>About - My Personal Website</title>
</head>
<body>
<h1>About Me</h1>
<p>This is the about page.</p>
<nav>
<a href="/">Home</a>
<a href="/contact/">Contact</a>
</nav>
</body>
</html>
复制代码
sudo vi /var/www/my_website/contact/index.html
复制代码
<!DOCTYPE html>
<html>
<head>
<title>Contact - My Personal Website</title>
</head>
<body>
<h1>Contact Me</h1>
<p>This is the contact page.</p>
<nav>
<a href="/">Home</a>
<a href="/about/">About</a>
</nav>
</body>
</html>
复制代码
设置Nginx
创建一个新的Nginx服务器块设置文件来设置你的网站:
Nginx服务器块(Server Block)用于定义一个虚拟主机的设置,每个服务器块可以设置差别的域名、端口、根目录等。服务器块在Nginx设置文件中用 server 指令来定义。
sudo vi /etc/nginx/sites-available/my_website
复制代码
在该文件中添加以下内容:
server {
# 监听端口,通常是80(HTTP)或443(HTTPS)。这里指定服务器监听80端口,用于处理HTTP请求。
listen 80;
# 定义服务器的域名。当请求的域名与此匹配时,将使用这个服务器块处理请求。
server_name my_website.com www.my_website.com;
# 指定网站的根目录,所有相对路径的文件请求都将从这个目录开始查找。
root /var/www/my_website;
# 定义默认的首页文件名。当用户请求根目录时,如果该文件存在,将返回该文件。
index index.html;
location / {# 尝试按照顺序查找文件:首先是请求的URI,如果不存在,则尝试添加斜杠查找目录,如果仍不存在,则返回404错误。
try_files $uri $uri/ =404;
}
}
复制代码
启用设置并加载Nginx
Nginx利用 sites-available 和 sites-enabled 目录来管理和构造虚拟主机设置文件:
/etc/nginx/sites-available/
:存放所有可用的站点设置文件。这些设置文件可以被启用或禁用。
/etc/nginx/sites-enabled/
:存放已启用站点设置文件的符号链接。Nginx在启动时会读取并加载这个目录下的设置文件。
检察现在的的符号链接:
sudo ls /etc/nginx/sites-enabled/
复制代码
存在名为 default 的符号链接,删除它:
sudo rm /etc/nginx/sites-enabled/default
复制代码
通过创建一个符号链接将设置文件链接到 sites-enabled 目录中:
sudo ln -s /etc/nginx/sites-available/my_website /etc/nginx/sites-enabled/
复制代码
在重新加载Nginx之前,确保设置文件没有语法错误:
sudo nginx -t
复制代码
假如测试通过,重新加载Nginx以应用新的设置:
sudo systemctl reload nginx
复制代码
Nginx设置文件*
Nginx的默认设置文件(通常位于 /etc/nginx/nginx.conf)包罗了基本的设置选项:
# 用户和组
user www-data;
# Nginx 进程数
worker_processes auto;
# 进程 ID 文件的位置
pid /run/nginx.pid;
# 包含模块的配置文件
include /etc/nginx/modules-enabled/*.conf;
# 事件模块配置
events {
# 每个 worker 进程的最大连接数
worker_connections 768;
# multi_accept on; # 是否同时接收多个新连接
}
# HTTP 核心模块配置
http {
##
# 基本设置
##
# 使用 sendfile 来提升文件传输效率
sendfile on;
# 启用 TCP_NOPUSH 以优化 TCP 数据包的发送
tcp_nopush on;
# 设置 types 哈希表的最大尺寸
types_hash_max_size 2048;
# server_tokens off; # 隐藏 Nginx 版本号以提升安全性
# server_names_hash_bucket_size 64; # 调整 server_names 哈希表桶大小
# server_name_in_redirect off; # 禁用在重定向中使用服务器名
# 包含 MIME 类型定义
include /etc/nginx/mime.types;
# 默认 MIME 类型
default_type application/octet-stream;
##
# SSL 设置
##
# 支持的 SSL/TLS 协议
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # 禁用 SSLv3,参考 POODLE 漏洞
# 优先使用服务器端的密码套件
ssl_prefer_server_ciphers on;
##
# 日志设置
##
# 访问日志的位置
access_log /var/log/nginx/access.log;
# 错误日志的位置
error_log /var/log/nginx/error.log;
##
# Gzip 设置
##
# 启用 Gzip 压缩
gzip on;
# gzip_vary on; # 启用响应头 `Vary: Accept-Encoding`
# gzip_proxied any; # 启用对任何请求的压缩
# gzip_comp_level 6; # Gzip 压缩级别
# gzip_buffers 16 8k; # Gzip 缓冲区
# gzip_http_version 1.1; # Gzip 最低 HTTP 版本要求
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; # 需要压缩的 MIME 类型
##
# 虚拟主机配置
##
# 包含其他配置文件
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
# 邮件代理模块配置示例(默认注释掉)
# mail {
# # 参考样例验证脚本:http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # 验证脚本的地址
# # auth_http localhost/auth.php;
#
# # POP3 协议的功能支持
# # pop3_capabilities "TOP" "USER";
#
# # IMAP 协议的功能支持
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
# }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
曹旭辉
金牌会员
这个人很懒什么都没写!
楼主热帖
网络安全应急响应 - 03 - 日志分析与内 ...
Redis - 介绍与使用场景
Nmap抓包分析与绕过Windows防火墙 ...
Mysql 的Innodb引擎和Myisam数据结构和 ...
一招教你如何高效批量导入与更新数据 ...
【docker系列】docker API管理接口增加 ...
聊聊Spring事务控制策略以及@Transacti ...
用代码收集每天热点内容信息,并发送到 ...
微服务架构演进
Maven配置私有仓库
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Java
分布式数据库
容器及微服务
移动端开发
DevOps与敏捷开发
网络安全
Mysql
物联网
程序人生
快速回复
返回顶部
返回列表