Nginx是一款轻量级web服务器,也是一款反向代理服务器
Nginx能干的事情很多,这里简要罗列一下
官方下载地址-下载Windows稳定版即可
下载成功之后解压到指定目录
点击nginx.exe,运行nginx服务,此时打开浏览器,访问本地域名就可以访问到nginx服务了
C:\Windows\System32\drivers\etc\host
空白处添加 127.0.0.1 misty.com
可以通过本地域名访问记事本打开打开安装目录下的${nginx}/conf/nginx.conf
在节点之间加入 include vhost/*.conf;
引入相关配置
在vhost目录(nginx.conf同级) 添加配置文件,例如
server {
listen 80;
autoindex on;
server_name misty.com www.misty.com;
access_log c:/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080;
add_header Access-Control-Allow-Origin *;
}
}
在nginx安装目录的根目录执行 nginx.exe -s reload
,重新加载nginx配置文件
* `D:\Program Files\nginx-1.16.0>nginx.exe -s reload`
yum install gcc
gcc -v
查询版本信息,看系统是否已经安装yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
综合命令
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载源码包 ,选择稳定版本,解压缩安装 官网地址
wget http://nginx.org/download/nginx-1.12.2.tar.gz
解压 tar -zxvf nginx-1.12.2.tar.gz
安装
./configure
,可能需要sudo权限,
--prefix=/usr/nginx
whereis nginx
进行查询/usr/local/nginx
make
make install
启动 没有指定安装路径的情况下 默认/usr/local/nginx
.${nginx}/sbin/nginx
测试配置文件
/nginx/sbin/nginx -t
启动命令
/nginx/sbin/nginx
停止命令
/nginx/sbin/nginx -s stop
或者 .${nginx}/sbin/nginx -s quit
重启命令
/nginx/sbin/nginx -s reload
查看进程命令
ps -ef |grep nginx
平滑重启
kill -HUB [nginx主进程号,也就是查看进程命令查到的pid]
增加防火墙访问权限
1. sudo vim /etc/sysconfig/iptables
2. -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
3. 保存退出
4. 重启防火墙 sudo service iptables restart
CentOS 7
CentOS 7防火墙相关命令
sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
sudo firewall-cmd --reload
参考本站这一篇文章wordpress开启https访问
配置步骤
在 /usr/local/nginx/conf/
目录新建vhost文件夹 即 /usr/local/nginx/conf/vhost
在vhost目录创建域名转发配置文件,详情参考下文nginx详情配置
启动(重启)验证
${nginx}/sbin/nginx
${nginx}/sbin/nginx -s reload
${nginx} 代表安装在系统中的路径,例如 /usr/local/nginx
http://localhost:80
或 http://127.0.0.1:80
指向端口
server {
listen 80;
server_name api.imisty.cn;
client_max_body_size 200M;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#root /devsoft/apache-tomcat-7.0.73/webapps/blog;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
proxy_pass http://127.0.0.1:8080/;
add_header Access-Control-Allow-Origin '*';
}
}
指向目录:本段配置指向download
目录 ,autoindex on
代表自动创建索引
server {
listen 80;
autoindex on;
server_name download.imisty.cn;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
#error_page 404 /404.html;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
root /download;
add_header Access-Control-Allow-Origin *;
}
}
既指向端口又指向目录
server {
listen 80;
autoindex on;
server_name imisty.cn www.imisty.cn;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location = / {
root /product/blog/dist/view;
index index.html;
}
location ~ .*\.html$ {
root /product/blog/dist/view;
index index.html;
}
location / {
proxy_pass http://127.0.0.1:8080/;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
proxy_pass http://127.0.0.1:8080;
expires 30d;
}
location ~ .*\.(js|css)?$ {
proxy_pass http://127.0.0.1:8080;
expires 7d;
}
}
注意 nginx的域名配置指向目录的时候,
autoindex on|off
属性,可以设置是否创建索引,设置成off,首页403,但是内容依旧可以访问,只是没有暴露索引
补充一段线上的wordpress博客配置,这里省去了https部分,属于比较标准的即指向端口有指向目录的配置
server {
listen 80;
server_name www.imisty.cn imisty.cn;
#非常关键不然 http也可以访问
return 301 https://www.imisty.cn$request_uri;
root /var/www/html/wordpress;
index index.html index.htm index.php;
client_max_body_size 100M;
proxy_intercept_errors on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location ~ .*\.php(\/.*)*$ {
include fastcgi.conf;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
error_log logs/error_wordpress.log;
access_log logs/misty.log combined;
}
./nginx -s reload
重新加载才会生效;可以配置域名转发,但是一定要配置host,并且使host生效之后才可以,设置完成之后要重启浏览器
Linux 修改host
10.211.55.6 image.misty.com
127.0.0.1 s.imisty.com
Windows
进入 C:\windows\system32\drivers\etc
用记事本打开hosts文件
添加好对应的域名以及IP (和Linux环境下修改host一样)
保存退出
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
这个错误很常见,这次次居然是刚刚编译安装之后就出现了,以前是补充安装模块的时候才会出现的,并且一旦出现以后重启服务器或关闭停止nginx
的时候就会出现,这次详细记录一下
这个问题产生的原因是nginx的安装目录下没有nginx.pid
,但是我实际是有的,查阅资料发现,因为每次重新启动,系统都会自动删除文件,所以解决方式就是更改pid文件存储的位置,每次启动的时候从固定的位置加载
${nginx}/logs/nginx.pid
是否存在${nginx}/sbin
目录执行一下./nginx -c /usr/local/nginx/conf/nginx.conf
scp -R 目录 [email protected]:~
将制定的文件或者目录上传至服务器的用户目录
每一丝灵感都值得被记录,每一笔记录都是成长,每一点成长都值得欢呼
博主个人站: www.imisty.cn
CSDN博客: https://blog.csdn.net/lookinthefog
博客园 :https://imist.cnblogs.com/
希望能够认识一些热爱技术的小伙伴,欢迎友链接哟