0
点赞
收藏
分享

微信扫一扫

使用nginx配置静态页面展示sphinx-doc


文章目录

  • ​​1. 安装nginx​​
  • ​​2. 设置静态页面请求​​
  • ​​3. 遇到问题的分析​​
  • ​​1. 网页 403 Forbidden​​
  • ​​2. 网页 404 Not Found​​
  • 系统: Ubuntu
  • 目的: 使用sphinx-doc给实验室制作了一套找工作的经验说明, 但是生成的index尝试了使用Django挂载特别麻烦(需要修改静态文件js, css等的相对链接), 然后发现还可以有两种方式挂载到网络上面, 这里使用nginx挂载
  • 思路:
  1. 首先我有一个云服务器, 所以有公网ip, 所以我可以实现我的html在全网可以访问, 所以拿到了我做好的html页面即可;
  2. 由于每个服务器的默认web服务端口是​​80​​​, 这里考虑到还有很多页面或者服务也会用到默认端口​​80​​​; 为啥​​80​​​这么重要, 因为只有挂载到​​80​​​端口的服务, 在浏览器上只需要输入​​域名/请求资源​​​, 而不是使用​​域名:指定端口/请求资源​​; 也就是少了一个端口指定的操作, 毕竟端口都不好记
  3. 基于上面的问题, 想到​​nginx​​​, 反向代理器, 其中一个功能就是可以​​把外面的请求转化为内部的请求​​​; 通俗的讲, 就是当我本地服务有一个 ​​ip:8001/index.html​​​ 和​​ip:8002/a.jpg​​​, 由于上面两个服务占用的不同的端口, 这时候我希望通过​​ip/index.html​​​ 和 ​​ip/a.jpg​​​来实现访问就需要用到nginx了, 因为他可以在外部请求(​​ip/index.html​​​ 和 ​​ip/a.jpg​​​)时转化为内部的( ​​ip:8001/index.html​​​ 和​​ip:8002/a.jpg​​)不同服务
  4. 最终的结果就是要实现 访问​​ip/请求资源​​​获得上面​​sphinx-doc​​​生成的​​index.html​​页面
  • nginx版本: ​​nginx version: nginx/1.14.0 (Ubuntu)​
  • ​​想要了解和使用sphinx-doc请点击跳转​​

1. 安装nginx

​$ sudo apt install nginx​

2. 设置静态页面请求

sudo vi /etc/nginx/nginx.conf # 配置文件

# 下面是配置信息
# user www-data;
user ubuntu; # 修改: 由于我的用户是`ubuntu`, 所以这里修改为ubuntu
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

# ------其他都不用动, 只需要修改这里即可-------------
server {
listen 80;
server_name 1.14.76.177;
# client_max_body_size 1024M;
# 我想要请求的就是"/home/ubuntu/zjq/sphinx_doc/build/html/index.html"
location / { # 资源路径块,定位资源文件位置。
root "/home/ubuntu/zjq/sphinx_doc/build/html";
index index.html;
}
# 上面location 后面的 "/" 指明root/index.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html/;
}
}

# -------到这里为止------------------------
}



sudo systemctl reload nginx # 重新加载nginx, 就可以在浏览器上访问了

使用nginx配置静态页面展示sphinx-doc_nginx

3. 遇到问题的分析

1. 网页 403 Forbidden

使用nginx配置静态页面展示sphinx-doc_nginx_02


这是由于用户问题, 由于​​/etc/nginx/nginx.conf # 配置文件​​​中, 默认的用户是www-data, 而这个用户是假的, 所以需要根据当前Ubuntu的用户进行修改, 我的是 ​​ubuntu​​, 修改完就好了

  • 查看当前nginx的用户 ​​ps aux | grep "nginx: worker process" | awk '{print $1}'​

2. 网页 404 Not Found

使用nginx配置静态页面展示sphinx-doc_django_03


这是由于​​/etc/nginx/nginx.conf # 配置文件​​中,

​server_name location;​​了, 而location只能是本地网络能请求, 外网无法确定, 因此这里需要将关键字改成对应的云服务器外网ip地址

​server_name 1.1.125.250;​

  • 查看80端口 ​​netstat -ntpl | grep 80​


举报

相关推荐

0 条评论