Nginx打卡
Nginx打卡
此括号中的是干货
【
直接说最关心的事:如何去掉访问路径的端口号?
答案:使用Nginx啊
具体安装还需看底下啰嗦的东东,安装OK且完美启动的同学,server proxy_pass 了解下:
server {
listen 80;
server_name 服务器地址;
location / {
proxy_pass 服务器地址:8081;
}
}
】
nginx 干啥的
* 俄罗斯非著名相声演员Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的一个高性能的HTTP和反向代理服务器,同时其也是一个IMAP/POP3/SMTP 代理服务器。
nginx 最牛逼的两点
* 反向代理
* 负载均衡
ngnix 架构
* Nginx 在启动后,会有一个 master 进程和多个 worker 进程。master 进程主要用来管理 worker 进程,包含:接收来自外界的信号,向各 worker 进程发送信号,监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动重新启动新的 worker 进程。而基本的网络事件,则是放在 worker 进程中来处理了。多个 worker 进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个 worker 进程中处理,一个 worker 进程,不可能处理其它进程的请求。worker 进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。
Nginx安装
1.安装C++编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2.安装 PCRE 为了使nginx支持Rewrite功能
# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2.1解压安装包
# tar zxvf pcre-8.35.tar.gz
2.2.进入安装包目录 编译安装
# cd pcre-8.35
# ./configure
# make && make install
3.安装Nginx
3.1下载安装包
# wget http://nginx.org/download/nginx-1.6.2.tar.gz
3.2解压安装包
# tar zxvf nginx-1.6.2.tar.gz
3.3 进入安装包目录编译安装
# cd nginx-1.6.2
# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
# make
# make install
3.4 查看nginx版本
# /usr/local/webserver/nginx/sbin/nginx -v
Nginx 的配置系统
创建nginx运行使用的用户 www:
# /usr/sbin/groupadd www
# /usr/sbin/useradd -g www www
关于nginx的配置请查阅相关资料照猫画虎
以上是安装时参考的,来自于菜鸟教程
以下又是一些概念,来自于W3Cschool
Nginx 的配置系统由一个主配置文件和其他一些辅助的配置文件构成。这些配置文件均是纯文本文件,全部位于Nginx 安装目录下的 conf 目录下。
配置文件中以#
开始的行,或者是前面有若干空格或者 TAB,然后再跟#
的行,都被认为是注释,也就是只对编辑查看文件的用户有意义,程序在读取这些注释行的时候,其实际的内容是被忽略的。
由于除主配置文件 nginx.conf 以外的文件都是在某些情况下才使用的,而只有主配置文件是在任何情况下都被使用的。所以在这里我们就以主配置文件为例,来解释 Nginx 的配置系统。
在 nginx.conf 中,包含若干配置项。每个配置项由配置指令和指令参数 2 个部分构成。指令参数也就是配置指令对应的配置值。
简单配置项 不需要花括号括起来 eg.
error_page 500 502 503 504 /50x.html;
复杂配置项需要花括号括起来 eg.
location / {
root /home/jizhao/nginx-book/build/html; index index.html index.htm;
}
指令上下文
nginx.conf 中的配置信息,根据其逻辑上的意义,对它们进行了分类,也就是分成了多个作用域,或者称之为配置指令上下文。不同的作用域含有一个或者多个配置项。
当前 Nginx 支持的几个指令上下文:
- main: Nginx 在运行时与具体业务功能(比如http服务或者email服务代理)无关的一些参数,比如工作进程数,运行的身份等。
- http: 与提供 http 服务相关的一些配置参数。例如:是否使用 keepalive 啊,是否使用gzip进行压缩等。
- server: http 服务上支持若干虚拟主机。每个虚拟主机一个对应的 server 配置项,配置项里面包含该虚拟主机相关的配置。在提供 mail 服务的代理时,也可以建立若干 server,每个 server 通过监听的地址来区分。
- location: http 服务中,某些特定的URL对应的一系列配置项。
- mail: 实现 email 相关的 SMTP/IMAP/POP3 代理时,共享的一些配置项(因为可能实现多个代理,工作在多个监听地址上)。
指令上下文,可能有包含的情况出现。例如:通常 http 上下文和 mail 上下文一定是出现在 main 上下文里的。在一个上下文里,可能包含另外一种类型的上下文多次。例如:如果 http 服务,支持了多个虚拟主机,那么在 http 上下文里,就会出现多个 server 上下文。
我的问题其实就在域名跳转这里,今天找到一个大佬写的,但是还没能完全成功,估计是我哪里搞的还是有问题,需要反复琢磨。
以下是大佬关于http server的配置
server {
listen 80;
server_name bbs.xxx.com;
location / {
proxy_pass http://bbs.xxx.com:9066/;
}
}
不得不说,我抄袭的这个没有半点意义,因为我现在还访问不到nginx主页,但也有点gg,我可以不带端口的访问到我的工程。。。具体问题后续跟踪。