大家好,今天小编关注到一个比较有意思的话题,就是关于nginx怎么搭建网站的问题,于是小编就整理了5个相关介绍nginx怎么搭建网站的解答,让我们一起看看吧。
电脑出现403 Forbidden nginx?
访问网站时出现403 Forbidden错误的原因,Forbidden的意思就是被禁止访问的意思,就是说没有权限访问此站。访问网站时出现403 Forbidden错误的原因有以下几个方面:
1. 在一定时间内过多地访问此网站,被防火墙拒绝访问了;换个时间段访问即可;
2. 网站域名解析到了空间,但空间未绑定此域名;联系网站空间供应商解决;
3. 网页脚本文件在当前目录下没有执行权限;联系技术人员,进行相关调试;
4. 在不允许写/创建;文件的目录中执行了创建/写文件操作;
5. 以http方式访问需要ssl连接的网址;
6. 浏览器不支持SSL 128时访问SSL 128的连接;
7. 连接的用户过多,可以过后再试;
8. 在身份验证的过程中输入了错误的密码;输入正确密码即可解决
nginx http转https原理?
Nginx 通过配置监听 HTTP 请求,并对其进行转发到 HTTPS 请求来实现将 HTTP 请求转换为 HTTPS 请求。
这个转发过程通常是通过在 Nginx 服务器上配置一个重定向规则来实现的。
该规则告诉 Nginx 将所有通过 HTTP 协议发送的请求重定向到相同的 URL,但使用 HTTPS 协议代替 HTTP。因此,用户在访问网站时将自动使用安全的 HTTPS 协议,而不是明文的 HTTP 协议。
nginx的proxypath是什么作用?
nginx的proxypath作用是为处理网站的html内容提供路径,实现server的效果,加一行proxy_redirect后,可以使得非公布域名可以被客户端识别。
值得注意的是,这个域名并非公布的域名,返回给客户端是会自然产生错误的。可以设置多个匹配规则与确保代理功能的完美实现。
tomcat与nginx区别?
nginx和tomcat区别是:
1、从应用方面。tomcat一般是做动态解析才会用得到,支持jsp的解析,需要配置JDK支持。
2、nginx,则一般是做静态,本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等,但nginx在静态上的功能非常强大,也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,具体得去官方网站去看。
3、在性能方面。如果再不做系统调优的情况下,tomcat一般支持并发并不高100个差不多,nginx在静态方面支持并发轻松达几万。
nginx如何配置?
nginx是一款高性能的web和反向代理服务器,这里默认题主已经安装好了nginx下面直接讲解如何配置:
进入到安装目录:
cd /usr/local/nginx/conf
修改前最好备份下:
cp nginx.conf nginx.conf.20181121
修改配置文件
vi nginx.conf
以下是完整的配置截图
解释:
我这里模拟的是两个目录,你可以将你的项目分别放到这2个目录进行访问。
我这里是有域名的,一级和二级域名,将你事先写好的2个项目,或则只是一个简单的index.html放入到上面对应的目录下,/var/www/html2或则/var/www/app
接下来只需要重启即可;
/usr/local/nginx/sbin/nginx -s reload
然后再您的浏览器里面直接输入域名即可访问(http请求默认是80端口,所以这里不用添加端口号就可以直接访问。当然了,你端口号改成8082,然后域名或ip加上:8082也是可以直接访问的。)
我写过一个专门的文章nginx配置,建议题主去看下。
私信@IT讲坛,回复【学习】获取最新技术干货资料。(包含nginx学习视频资料)。
先简单介绍一下nginx,nginx到底是什么?
Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。
Nginx 的官方介绍见 http://nginx.org/en/Nginx
Nginx整体配置介绍
在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:
在上述配置中我们可以看出,Nginx配置文件由以下几个部分构成:
- 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
location块:配置请求的路由,以及各种页面的处理情况。
Nginx配置文件nginx.conf详解
如图:
为了方便复制,贴出代码,如下:
# 定义 Nginx 运行的用户和用户组,默认由 nobody 账号运行, windows 下面可以注释掉。
user www www;
# 工作进程:数目。根据硬件调整,通常等于CPU数量。
worker_processes 1;
# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
# 进程文件,windows 底下可以注释掉
pid /var/run/nginx.pid;
# 一个nginx进程打开的最多文件描述符(句柄)数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,
# 但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
# events块
events {
#每个工作进程的最大连接数量,每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections
worker_connections 1024;
}
# http模块
http {
# 文件扩展名与文件类型映射表
include mime.types;
# 默认文件类型
default_type application/octet-stream;
# 日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# 日志文件路径及所用的日志格式
#access_log logs/access.log main;
# 允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#tcp_nopush on;
# 连接超时时间,默认为75s,可以在http,server,location块。
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip压缩相关配置
#gzip on;
gzip on; # 开启gzip压缩传输
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 32k; # 压缩缓存区
gzip_http_version 1.1; # 压缩版本
gzip_comp_level 2; # 压缩级别
gzip_types text/plain application/x-javascript text/css application/xml; # 压缩文件类型
gzip_vary on;
gzip_disable "MSIE [1-6].";
# 保存服务器名字的hash表的大小
server_names_hash_bucket_size 128;
# 设定通过nginx上传文件的大小
client_max_body_size 100m;
# 客户端请求头部的缓冲区大小。
client_header_buffer_size 256k;
# 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
large_client_header_buffers 4 256k;
# 代理头部信息设置,将代理服务器收到的用户的信息传到真实服务器上
proxy_set_header Host $host:$server_port;
proxy_set_header X-real-ip $remote_addr;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 虚拟主机
server {
# 监听端口
listen 8088;
# 监听地址
server_name t1.sgl.com;
# 请求地址location
location / {
# 请求转向到代理服务器
proxy_pass http://127.0.0.1:8080;
}
location /admin/user_toIndexPage.do {
# 超时时间
proxy_read_timeout 300;
proxy_pass http://127.0.0.1:8080;
}
location /wechat/ {
proxy_pass http://127.0.0.1:8081;
}
location /new/ {
proxy_pass http://127.0.0.1:8081;
}
}
}
常用的几个内置变量
- $remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
- $remote_user :用来记录客户端用户名称;
- $time_local : 用来记录访问时间与时区;
- $request : 用来记录请求的url与http协议;
- $status : 用来记录请求状态;成功是200;
- $body_bytes_s ent :记录发送给客户端文件主体内容大小;
- $http_referer :用来记录从那个页面链接访问过来的;
- $http_user_agent :记录客户端浏览器的相关信息;
关于nginx重新加载配置、平滑升级参考我的博客
nginx启动、重启、重新加载配置文件和平滑升级: (
https://blog.csdn.net/gnail_oug/article/details/52754491)
nginx的location解析过程介绍: (https://blog.csdn.net/gnail_oug/article/details/53236898)
nginx的gzip压缩功能参数介绍: (https://blog.csdn.net/gnail_oug/article/details/53246026)
希望以上内容能够帮助你理解nginx配置。
到此,以上就是小编对于nginx怎么搭建网站的问题就介绍到这了,希望介绍关于nginx怎么搭建网站的5点解答对大家有用。