环境: centOS 7.3 64位 阿里云服务器
nginx版本 1.12.2
Nginx 是一款面向性能设计的 HTTP 服务器,能反向代理 HTTP,HTTPS 和邮件相关(SMTP,POP3,IMAP)的协议链接。并且提供了负载均衡以及 HTTP 缓存。它的设计充分使用异步事件模型,削减上下文调度的开销,提高服务器并发能力。采用了模块化设计,提供了丰富模块的第三方模块。
所以关于 Nginx,有这些标签:「异步」「事件」「模块化」「高性能」「高并发」「反向代理」「负载均衡」
1,安装依赖
prce(重定向支持)和openssl(https支持,如果不需要https可以不安装。)
yum -y install pcre*
yum -y install openssl*
2,下载nginx压缩包
这里是安装到了/usr/local/目录下
cd /usr/local
wget http://nginx.org/download/nginx-1.12.2.tar.gz
# 如果没有安装wget
# 下载已编译版本
$ yum install wget
然后解压文件包
tar zxvf nginx-1.12.2.tar.gz
3,编译安装
cd nginx-1.12.2
./configure
安装报错误的话比如:“C compiler cc is not found”,这个就是缺少编译环境,安装一下就可以了 yum -y install gcc make gcc-c++ openssl-devel wget
如果没有error信息,就可以执行下边的安装了:
make -j4 && make install
编译安装完成以后,输入命令查看版本号,显示版本号说明安装成功
/usr/local/nginx/sbin/nginx -v
4,在web项目目录下创建静态html 文件
接下来需要在服务器端web项目目录下新建一个文件夹,假设 /home/www/test/ 这个目录是web项目目录
然后在这个目录下放一个index.html文件
mkdir /home/www/test
vim index.html
##写入如下代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<h1>我是服务器上的index.html 文件啊</h1>
</body>
</html>
然后随便写点东西进去保存并退出。
5,配置nginx
这一步很关键
切换到nginx 安装目录下找到nginx.conf文件修改配置
这里提前说一下,最好是把原来的nginx.conf 文件备份出来一份,名字改成nginx.conf.default
然后在改nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
修改文件内容如下,最后并保存
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
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 on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80; #这里需要我们设置web访问的端口
server_name 129.xxx.xxx.xxx; #这里设置web访问的IP,最终在浏览器访问 129.xxx.xxx.xxx:80/index.html
#charset koi8-r;
#access_log logs/host.access.log main;
location / { #这里很重要,原因参考下一行
root /home/www/test; #这里更重要,root是指直接访问 IP:port 时,获取文件的根目录,如果上一行设置为 / ,则直接访问IP:port会去拉取 /usr下面的index.html
index index.html index.htm; #接上一行,如果location后面设置了目录 /abc ,则访问IP:port时,会拉取 /usr/abc/index.html.
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
然后通过下边的启动nginx 命令启动
就可以再浏览器上访问刚才的index.html 文件了
浏览器地址
192.168.0.103:80/index.html # 前边的ip地址是随便写的,请使用公网ip
效果如下
nginx 常用命令
# 启动
/usr/local/nginx/sbin/nginx
# 重启
/usr/local/nginx/sbin/nginx -s reload
# 关闭进程
/usr/local/nginx/sbin/nginx -s stop
# 平滑关闭nginx
/usr/local/nginx/sbin/nginx -s quit
# 查看nginx的安装状态,
/usr/local/nginx/sbin/nginx -V
这只是简单的nginx 配置,更详细的教程会在后续更新