基于nginx的静态网页部署

背景:

一序列的html网页需要部署

基于nginx的部署:

本文采用的基于openresty的nginx 配置。
简单地配置 Nginx 的配置文件,以便在启动 Nginx 时去启用这些配置即可实现对于编写好的html网页的点击跳转访问。而本文的重点也是于此。

配置方式1:

Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,一般地,我们只需要配置主配置文件就行了。/usr/local/openresty/nginx/conf 下的配置文件修改如下:
配置信息:

#user  nobody;worker_processes  1;

#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {    worker_connections  1024;}

http {    resolver 10.1.16.10;    include       mime.types;    default_type  application/octet-stream;

log_format  main  ‘$remote_addr\t$remote_user\t[$time_local]\t$request ‘        ‘\t$status\t$body_bytes_sent\t$http_referer‘        ‘\t$http_user_agent\t$http_x_forwarded_for‘        ‘\t$host\t$request_time\t$upstream_addr\t$upstream_status\t$upstream_response_time‘;

server_names_hash_bucket_size 128;    client_header_buffer_size 32k;    large_client_header_buffers 4 32k;    client_max_body_size 30m;

sendfile on;    tcp_nopush     on;    log_subrequest on;

keepalive_timeout 60;    tcp_nodelay on;

gzip on;    gzip_min_length  1k;    gzip_buffers     4 16k;    gzip_http_version 1.0;    gzip_comp_level 2;    gzip_types       text/plain application/x-javascript text/css application/xml;    gzip_vary on;

lua_package_cpath ‘lib/?.so;tcp/lib/?.so;/data1/htdocs/lua_v2/lib/*/?.so;;‘;    lua_shared_dict cache 100m;    lua_code_cache on;    lua_shared_dict lyrics_monitor_cnt 1024K;

server {    listen 8081;             # 监听本机所有 ip 上的 8081 端口    server_name _;           # 域名:www.example.com 这里 "_" 代表获取匹配所有    root /home/liujiepeng/workspace/html/etc/resource/html/; # 站点根目录    index Home.html;    }}

创建一个目录,例如: /home/liujiepeng/workspace/html/etc/resource/html/ 然后在这个 html文件夹下可以放置你需要部署的静态页面文件,例如 html下我有 google、baidu、liujiepeng这三个文件夹,其中 server 字段配置如下:

server {        listen 80;        server_name _;        root /home/liujiepeng/workspace/html/etc/resource/html/;        index Home.html;}

这里每个文件夹下面的静态页面文件名都是 Home.html 。这样配置的话,例如当你访问 www.example.com/google/ 时,nginx 就会去 root指定的目录下的 google 文件夹下寻找到 Home.html 并把 google 页面返回,同理,访问 www.example.com/baidu/ 时,会寻找到 baidu文件夹下的 Home.html 并把 baidu页面返回。

而在 google、baidu、liujiepeng 文件夹的同级目录上,再添加你的域名首页 Home.html 时,访问 www.example.com 时就会返回了。

这里唯一美中不足的是,访问域名中 www.showzeng.cn/zhihu 末尾会自动加上 / ,在浏览器中按 F12 调试会发现 www.showzeng.cn/zhihu 为 301 状态码,因为 index.html 是在 zhihu/ 文件夹下,所以在搜索过程中会重定向到 www.showzeng.cn/zhihu/

配置方式2:

这里需要注意的是 http 上下文里的 server 上下文。

server {        listen 8081;             # 监听本机所有 ip 上的 8081 端口        server_name _;           # 域名:www.example.com 这里 "_" 代表获取匹配所有        root /home/filename/;    # 站点根目录

location / {             # 可有多个 location 用于配置路由地址            try_files index.html =404;        }}

这里的 root 字段最好写在 location 字段的外边,防止出现无法加载 css、js 的情况。因为 css、js 的加载并不是自动的,nginx 无法执行,需要额外的配置来返回资源,所以,对于静态页面的部署,这样做是最为方便的。
这里对 root 作进一步解释,例如在服务器上有 /home/liujiepeng/workspace/html/etc/resource/html/,其下有 index.html 文件和 css/ 以及 img/ , root /home/liujiepeng/workspace/html/etc/resource/html/ 这配置语句就将指定服务器加载资源时是在 /home/liujiepeng/workspace/html/etc/resource/html/ 下查找。
其次, location 后的匹配分多种,其各类匹配方式优先级也各不相同。这里列举一精确匹配例子:

server {        listen 80;                       server_name _;                   root /home/zhihu/;    

location = /zhihu {            rewrite ^/.* / break;            try_files index.html =404;        }}

此时,访问 www.example.com/liujiepeng 就会加载 zhihu.html 出来了。由于 location 的精确匹配,只有访问 www.example.com/liujiepeng 这个路由时才会正确响应,而且此时要通过 rewrite 正则匹配,把 /zhihu 解析替换成原来的 / 。关于更多 location 字段用法,可以在文章最后给出的参考资料中查看。

参考: http://showzeng.itscoder.com/nginx/2016/10/03/use-nginx-to-deploy-static-pages-easily.html

            


原文地址:https://www.cnblogs.com/jpfss/p/9182320.html

时间: 2024-10-09 01:01:29

基于nginx的静态网页部署的相关文章

将静态网页部署到git上访问

1.将已有的项目放在github上 http://www.cnblogs.com/zqunor/p/6583182.html 2.出现错误解决方案 提交错误 http://blog.csdn.net/dengjianqiang2011/article/details/9260435 合并错误 https://www.cnblogs.com/wei325/p/5278922.html 3.将静态网页部署到github上访问 https://www.cnblogs.com/DaisyWang/p/5

用github部署静态网页

用 GitHub 来部署静态网页 ??????这个教程主要适用于直接创建仓库.想从github上直接上手的同学可以参照以上教程部署静态网页. 我想分享给大家的是,如何将已经创建了仓库并且有master分支的项目部署为静态网页. 自动生成页面 1.点击settings 自动生成页面 仓库名和访问二级域名一致. 跳转到这个页面,直接忽视,点击最后面的按钮. 随意选择,提交. 现在我们已经生成了gh-pages分支. gh-pages分支内容. * 本地向分支推送代码* 进入目标文件夹 查看分支 $

基于nginx+tomcat的负载均衡以及memcached解决交叉存储

nginx是以多进程的方式工作的,有一个master进程和多个worker进程master进程用来管理worker进程(1)向各worker进程发送信号(2)监控worker进程,当一个worker进程出现异常后,会启动新的worker进程. master进程会先建立好需要监听的socket,fork函数生成子进程workers,继承scoket,一般来讲,当有连接进入后,所有accept在这个socket上面的进程都会收到通知,而只有一个进程会accept这个连接,其它都会失败.  --->

基于Nginx反向代理及负载均衡

基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是开启的,因为proxy属于nginx内置标准模块,通常实现代理的时候,最核心模块是proxy_pass,用于将用户请求的rui递交至上游服务器的某个URI但这个模块大部分用于location当中,因此要实现将某一URI的访问代理某个上游服务器大致的格式为: location /name/ { pro

构建基于Nginx的web服务器

构建基于Nginx的web服务器 一.简介 Nginx("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器. Nginx 是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站 点开发的,它已经在该站点运行超过四年多了.Igor 将源代码以类BSD许可证的形式发布.自Nginx 发布四年来,Nginx 已经因为它的占有内存少.并发能力强.稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名了.目前国内各大

Nginx+Apache动静分离部署

Nginx+Apache动静分离部署 为什么需要部署Nginx+Apache动静分离? ? 之前在讲解基于LNMP架构的Discuz论坛搭建(原文链接:https://blog.51cto.com/14557673/2461480)的时候对动静分离有所提及,这边简述一下核心原因: ? 根据Nginx服务的特性,其擅长处理静态网站(图片文字视频等文件)访问资源,而Apache擅长动态处理(例如:账号注册的交互). ? 因此我们可以结合这两个服务特点与优势,部署实现网站服务的动静分离. 部署Ngin

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

基于Window Azure 静态网站的跨站点高可用!

?? 我们上篇文章讨论了基于PAAS的简单网页的Failover,由于相对操作比较简单,因为PAAS的接口对应给用户相对较少,因此针对无状态的配置相对简单.而针对通过虚拟机来配置我们可以实现本地高可用和跨站点高可用来结合提供更高的可用性. 而基于虚拟机方式提供的高可用,我们可以在本地建立两台虚拟机,保证我们应用访问的高可用,因为没有涉及到交互的静态页面,因此我们可以采用建立可用性群集的方式保证我们的网站在同一个数据中心的可用性.同时我们用Traffic Manager来保证我们在跨数据中心的时候

Django + Uwsgi + Nginx 的生产环境部署

使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑一些问题了.比如静态文件处理,安全,效率等等,本篇文章总结归纳了一下基于uwsgi+Nginx下django项目生产环境的部署 准备条件: 1.确保有一个能够用runserver正常启动的django项目 2.项目已上传到linux 3.linux上已部署好python环境,且已安装好项目所需的模块 安装uwsgi uwsgi是python的一个模块,安装u