基于nginx的静态网页部署的实现
背景:
一序列的html网页需要部署
基于nginx的部署:
本文采用的基于openresty的nginx配置。
简单地配置Nginx的配置文件,以便在启动Nginx时去启用这些配置即可实现对于编写好的html网页的点击跳转访问。而本文的重点也是于此。
配置方式1:
Nginx的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,一般地,我们只需要配置主配置文件就行了。/usr/local/openresty/nginx/conf下的配置文件修改如下:
配置信息:
#usernobody; worker_processes1; #error_loglogs/error.log; #error_loglogs/error.lognotice; #error_loglogs/error.loginfo; #pidlogs/nginx.pid; events{ worker_connections1024; } http{ resolver10.1.16.10; includemime.types; default_typeapplication/octet-stream; log_formatmain'$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_size128; client_header_buffer_size32k; large_client_header_buffers432k; client_max_body_size30m; sendfileon; tcp_nopushon; log_subrequeston; keepalive_timeout60; tcp_nodelayon; gzipon; gzip_min_length1k; gzip_buffers416k; gzip_http_version1.0; gzip_comp_level2; gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml; gzip_varyon; lua_package_cpath'lib/?.so;tcp/lib/?.so;/data1/htdocs/lua_v2/lib/*/?.so;;'; lua_shared_dictcache100m; lua_code_cacheon; lua_shared_dictlyrics_monitor_cnt1024K; server{ listen8081;#监听本机所有ip上的8081端口 server_name_;#域名:www.example.com这里"_"代表获取匹配所有 root/home/liujiepeng/workspace/html/etc/resource/html/;#站点根目录 indexHome.html; } }
创建一个目录,例如:/home/liujiepeng/workspace/html/etc/resource/html/然后在这个html文件夹下可以放置你需要部署的静态页面文件,例如html下我有google、baidu、liujiepeng这三个文件夹,其中server字段配置如下:
server{ listen80; server_name_; root/home/liujiepeng/workspace/html/etc/resource/html/; indexHome.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{ listen8081;#监听本机所有ip上的8081端口 server_name_;#域名:www.example.com这里"_"代表获取匹配所有 root/home/filename/;#站点根目录 location/{#可有多个location用于配置路由地址 try_filesindex.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{ listen80; server_name_; root/home/zhihu/; location=/zhihu{ rewrite^/.*/break; try_filesindex.html=404; } }
此时,访问www.example.com/liujiepeng就会加载zhihu.html出来了。由于location的精确匹配,只有访问www.example.com/liujiepeng这个路由时才会正确响应,而且此时要通过rewrite正则匹配,把/zhihu解析替换成原来的/。关于更多location字段用法,可以在文章最后给出的参考资料中查看。
参考:https://www.nhooo.com/article/141340.htm
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。