文章目录
- 1. 安装nginx
- 2. 设置静态页面请求
- 3. 遇到问题的分析
- 1. 网页 403 Forbidden
- 2. 网页 404 Not Found
- 系统: Ubuntu
- 目的: 使用sphinx-doc给实验室制作了一套找工作的经验说明, 但是生成的index尝试了使用Django挂载特别麻烦(需要修改静态文件js, css等的相对链接), 然后发现还可以有两种方式挂载到网络上面, 这里使用nginx挂载
- 思路:
- 首先我有一个云服务器, 所以有公网ip, 所以我可以实现我的html在全网可以访问, 所以拿到了我做好的html页面即可;
- 由于每个服务器的默认web服务端口是
, 这里考虑到还有很多页面或者服务也会用到默认端口80
; 为啥80
这么重要, 因为只有挂载到80
端口的服务, 在浏览器上只需要输入80
, 而不是使用域名/请求资源
; 也就是少了一个端口指定的操作, 毕竟端口都不好记域名:指定端口/请求资源
- 基于上面的问题, 想到
, 反向代理器, 其中一个功能就是可以nginx
; 通俗的讲, 就是当我本地服务有一个 把外面的请求转化为内部的请求
和ip:8001/index.html
, 由于上面两个服务占用的不同的端口, 这时候我希望通过ip:8002/a.jpg
和 ip/index.html
来实现访问就需要用到nginx了, 因为他可以在外部请求(ip/a.jpg
和 ip/index.html
)时转化为内部的( ip/a.jpg
和ip:8001/index.html
)不同服务ip:8002/a.jpg
- 最终的结果就是要实现 访问
获得上面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, 就可以在浏览器上访问了
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yMwETO1ITNwImYiVDZ3M2NzYzX5EjM0UTMyIzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
3. 遇到问题的分析
1. 网页 403 Forbidden
这是由于用户问题, 由于
/etc/nginx/nginx.conf # 配置文件
中, 默认的用户是www-data, 而这个用户是假的, 所以需要根据当前Ubuntu的用户进行修改, 我的是
ubuntu
, 修改完就好了
- 查看当前nginx的用户
ps aux | grep "nginx: worker process" | awk '{print $1}'
2. 网页 404 Not Found
这是由于
/etc/nginx/nginx.conf # 配置文件
中,
- 查看80端口
netstat -ntpl | grep 80